From 13299205d4ee8bd6c5a0cb505fa325734e5b6fb1 Mon Sep 17 00:00:00 2001 From: Noureddin Date: Tue, 7 Nov 2023 08:20:13 +0300 Subject: [PATCH] minify js, css, and html --- .index.html | 28 +- .scripts.js | 13 + Makefile | 24 +- index.html | 2572 +----------------------------------------------- minify.pl | 69 +- scripts.min.js | 1 + style.min.css | 1 + 7 files changed, 50 insertions(+), 2658 deletions(-) create mode 100644 .scripts.js create mode 100644 scripts.min.js create mode 100644 style.min.css diff --git a/.index.html b/.index.html index 33e9f2e..c6c6ebd 100644 --- a/.index.html +++ b/.index.html @@ -6,7 +6,7 @@ <> <> @@ -173,34 +173,12 @@ - + - - + diff --git a/.scripts.js b/.scripts.js new file mode 100644 index 0000000..e29f8e5 --- /dev/null +++ b/.scripts.js @@ -0,0 +1,13 @@ +'use strict' +<> +<> +<> +<> +<> +// from: https://github.com/mathusummut/confetti.js. Copyright (c) 2018 MathuSum Mut. MIT License +<> +<> +// remove the '#' in the previous line to perform the tests +<> +<> +<> diff --git a/Makefile b/Makefile index 37ae650..1cabc18 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,26 @@ -index.html: .index.html a.js data.js *.js *.css - perl -CSAD -nE 'while(s/<>/`$$1`/ge){} print' "$<" > "$@" +R=$(shell perl -nle 'push @a, /\bon\w+="([^"]+)\(\)/; END { printf "[%s]\n", join ",", sort @a }' .index.html) +J=deno run --quiet --allow-read npm:uglify-js -c passes=5 -m toplevel,reserved=$R +C=deno run --quiet --allow-read npm:clean-css-cli +M=perl -CSAD minify.pl +P=perl -CSAD -nE 'while(s/<>/`$$1`/ge){} print' + + +index.html: .index.html a.js data.js scripts.min.js style.min.css + $P "$<" | $M > "$@" + +%.min.css: %.css + $C "$<" > "$@" + +%.min.js: %.js + $J "$<" > "$@" %.js: .%.js - perl -CSAD -nE 'while(s/<>/`$$1`/ge){} print' "$<" > "$@" + $P "$<" > "$@" + +scripts.min.js: .scripts.js a.js data.js *.js + $P "$<" | perl -CDAS -pe 's/const +say += +console\.log//' | $J > "$@" .PHONEY: clean clean: - rm -f index.html a.js data.js + rm -f index.html a.js data.js scripts.min.js style.min.css diff --git a/index.html b/index.html index d71b468..ae1ce1f 100644 --- a/index.html +++ b/index.html @@ -1,2572 +1,2 @@ - - - - - -راجع ما تحفظ من القرآن الكريم | رسايت - - - - - - - - - - - - - - - - - - -
-
- -
- - - - - - -
- -
- -
-
- -
- - -
- - -
- -
- -
- -
- -
- خيارات وضع التسميع العثماني (بلا كتابة): - -
- -
- -
- -
- -
- -
- -
- -
- -
- - - -
- -
- -
-

أسئلة عامة

-
ما هذا؟
-

هذا تطبيق يساعدك على اختبار حفظك من القرآن الكريم.

-
-
أليست المراجعة مع شيخ مُجيد أفضل؟
-

بالتأكيد؛ ما هذا التطبيق إلا وسيلةً مساعدة. ولن يفيد من لا يستطيع التلاوة الصحيحة من المصحف بالتجويد. ولن يُصحح لك أخطاء التجويد إن لم تكن تعلم معنى العلامات المستخدمة في المصحف.

-

فالهدف من هذا التطبيق ليس استبدال المعلم، بل أن يكون مكمّلا ومساعدا لك، فلا معنى للحفظ من غير تصحيح التلاوة، وهذا لا يساعدك فيه إلا إنسان مُجيد.

-

انظر أيضا النقطة «يجب التلاوة على شيخ مُجيد، وعدم الاعتماد على الرسم الإملائي» بالأسفل.

-
-
هل سيساعدني هذا التطبيق على الحفظ؟
-

لا. هذا ليس إلا وسيلة لاختبار حفظك ومعرفة نقاط ضعفك ومن ثَم مساعدتك على تثبيت حفظك. لكنه ليس للتحفيظ؛ عليك أن تحفظ مع شيخ مُجيد أولا ليضبط لك النطق، وبعد أن تحفظ، تستطيع أن تراجع هنا.

-

ولكن يمكنك استخدامه عبر مشروعنا الآخر «ذِكر الذِكر»، فهو «نظام تكرار متباعد» ليساعدك في تثبيت حفظك للقرآن الكريم. و«ذِكر الذِكر» يستخدم هذا التطبيق لاختبار حفظك، لكنه يسهّل عليك تقسيم الحفظ واختيار ما تحتاج مراجعته.

-
-
أليست الكتابة أفضل؟
-

نعم، الكتابة يدويا على لوح بالرسم العثماني هي من أفضل الطرق على الإطلاق لتثبيت حفظ القرآن الكريم. وهي الطريقة المتبعة في الكثير من الدول الإسلامية خصوصا في أفريقيا.

-

ولكن الكتابة بالرسم العثماني على الحاسوب ليست يسيرة. وإذا أردنا أن نقارب، فنكتب بالرسم الإملائي الحديث ومن غير تشكيل، فسنجد أنها تصير بطيئة ومتعبة عند الاقتراب من نهاية حزب واحد (تختلف من شخص لآخر).

-

ولكن إذا أردت تجربتها، فيمكنك اختيار الوضع الـ«إملائي» من أمام «وضع التسميع» في شاشة «الخيارات» ثم بدء التسميع (أو اضغط «إعادة» إن كنت قد بدأت التسميع بالفعل).

-

شخصيا أنصح بالطريقتين معا؛ فإظهار الكلمات بالرسم العثماني يُماثل القراءة من المصحف ويسهل عليك مراجعة حركات الحروف (بالتجويد) كما أنه سريع نسبيا مما يتيح مراجعة كمّ أكبر في وقت أقل، والكتابة تجبرك على التلاوة بتمهّل وإدخال كل كلمة حرفا حرفا ومعرفة مواضع الفواصل بين الكلمات والآيات.

-
-
كيف أستخدمه؟
-

اختر سورةً تود تسميعها من الخانة التي أمام «من السورة»، ثم اضغط زر «ابدأ»، سيظهر شريط أزرار. كل ضغطة على الزر الكبير () ستُظهر كلمة.

-

انظر أيضا النقطة «يمكنك الانتقال إلى الأمام وإلى الخلف، بالكلمة وبالآية وبالعبارة» بالأسفل.
-وإذا كنت تستخدم الوضع الإملائي (الكتابي)، فانظر النقطة «كيف أستخدم التسميع الكتابي (الوضع الإملائي)؟» بالأسفل.

-

اتلُ الجزء الذي حددته، وبعد تلاوة كل كلمة، اضغط على الزر حتى تُظهرها. فإذا كانت صحيحة (بتشكيلها)، تابع تلاوتك، وإلا فسجّل هذا الموضع في كراسة مثلا، وأعد تلاوتك من بداية الآية أو من الآية السابقة، حتى تصل إلى الكلمة التالية، ثم اضغط لإظهارها. واستمر هكذا حتى تنتهي. ثم راجع المواضع التي أخطأت فيها.

-

ويمكنك استخدامه عبر مشروعنا الآخر «ذِكر الذِكر»، فهو «نظام تكرار متباعد» ليساعدك في تثبيت حفظك للقرآن الكريم. و«ذِكر الذِكر» يستخدم هذا التطبيق لاختبار حفظك، لكنه يسهّل عليك تقسيم الحفظ واختيار ما تحتاج مراجعته.

-
-
لماذا توجد خانتين لإدخال السورة المرادة؟
-

لأن هذا التطبيق يتيح لك مراجعة أي عدد من الآيات المتتالية في المصحف، بغض النظر عن سورها. فتستطيع مثلا مراجعة الجزء الثالث، والذي يبدأ في سورة البقرة وينتهي في منتصف سورة آل عمران. كذلك تستطيع مراجعة حزب معين، أو ربع، أو حتى صفحة واحدة، أو صفحتين متقابلتين، أو عشر سور متتالية. كل ما عليك هو تحديد آية البداية وسورتها، وآية النهاية وسورتها.

-
-
كيف يمكنني الاستماع إلى التلاوة الصوتية للآيات؟
-

اضغط على «أظهر الخيارات» ثم اختر القارئ الذي تحب الاستماع إليه من الخانة التي أمام «تلاوة بصوت». وعندئذ، بمجرد إظهار الكلمة الأخيرة من كل آية (أو ضغط Enter في نهايتها في الوضع الإملائي)، سيتلو القارئ هذه الآية.

-

انظر أيضا سؤال «ما هو الوضع المعلم؟» التالي.

-

جزى الله خيرا القائمين على مشروع -Verse By Verse MP3 Quran -لتوفيرهم التلاوات الصوتية لنا ولبرنامج آيات.

-
-
ما هو الوضع المعلم؟
-

قبل تفعيل الوضع المعلم، فإن باختيارك لتلاوة صوتية ستسمع كل آية بعد إنهاء تسميعها. أما الوضع المعلم فسيجعل التلاوة الصوتية للآية قبل بدء تسميعها.

-

وسُمّي الوضع المعلم بهذا الاسم لأنه يناظر المصحف المعلم، وهو تسجيل صوتي للقرءان الكريم يتوقف فيه الشيخ بعد كل آية مقدارًا كافيًا ليكرر المستمع الآية التي تلاها الشيخ.

-

ففي الوضع المعلم تسمع الآية من الشيخ الذي تختاره ثم تتلوها نطقا وكتابة، بدلا من أن تتلوها من الذاكرة.

-

طبعا لا يُغني الوضع المعلم عن وضع التسميع العادي (اختبار الحفظ) ولا عن الشيخ المعلم (الإنسان).

-
-
كيف أستخدم التسميع الكتابي (الوضع الإملائي)؟
-

بمجرد اختياره من شاشة «الخيارات» من أمام «وضع التسميع» ثم بدء التسميع (أو إعادته إن كنت قد بدأت التسميع على الوضع العثماني)، فستجد أن خانة الكتابة محددة آليا حتى تبدأ الكتابة فيها مباشرة.

-

لاحظ أن:

-
    -
  • الآية الأولى من جميع السور مسبوقة بالبسملة على سطر وحدها (باستثناء سورة التوبة، فهي لا تبدأ بالبسملة مطلقا، وكذلك الفاتحة لأن آيتها الأولى هي البسملة).

  • -
  • كل آية على سطر وحدها، أي تنتهي بضغطة على زر Enter، حتى الآية الأخيرة تنتهي بضغطة على زر Enter.

  • -
  • بين كل كلمة في الآية مسافة واحدة فقط. ولا مسافة قبل الكلمة الأولى من الآية ولا بعد الكلمة الأخيرة منها.

  • -
  • بمجرد انتهاء الآية (بضغط زر Enter)، يُضاف رقم الآية آليا، وإذا كنت قد اخترت قارئا من شاشة «الخيارات» فسيتلوها كذلك.

  • -
  • عند الخطأ في أي حرف، يتغير لون خانة الكتابة إلى الأحمر.

  • -
  • يمكن جعل مراجعة الأخطاء تتم بعد كل كلمة وليس كل حرف، من شاشة «الخيارات».

  • -
  • لا تكتب علامات التشكيل، أبدا؛ جميع علامات التشكيل التي تكتبها ستُحذف قبل إضافة علامات التشكيل الصحيحة. قد يتغير هذا في المستقبل.

  • -
  • الألف المقصورة والياء حرفان مختلفان. الألف المقصورة هي ألف في آخر الكلمة وتُرسم ياءً بغير نقطتين، وتوجد في الصف الأسفل من لوحة المفاتيح، تحت زر الألف غالبا. أما الياء فتحتها نقطتين دائما، حتى في آخر الكلمة. وتوجد غالبا على الزر الثالث من اليسار في الصف الأوسط، بين الباء والسين.

  • -
  • الهمزات صعبة. أعرف هذا. ¯\_(ツ)_/¯

  • -
-
-
لدي مشكلة أو اقتراح، كيف أتواصل معك؟
-

عبر مسائل GitHub، -أو البريد الإلكتروني: -[hidden]، -على أن توضّح في الحالتين في العنوان أنك تقصد «رسايت ويب» (اسم هذا التطبيق).

-
-

ملاحظات متفرقة

-
النص في هذا التطبيق برواية حفص عن عاصم.
-

-

حتى عند اختيار تلاوة صوتية براوية ورش عن نافع، يظل النص القرآني برواية حفص عن عاصم.

-
-
النص العثماني للقرآن ملون تبعا لقواعد التجويد، ويمكن تغيير ذلك.
-

يمكن تغيير ذلك من خانة «تلوين النص» في شاشة «الخيارات»، والتي تتيح لنا ثلاث قيم:

-
    -
  • تبعا لقواعد التجويد: مثل مصحف التجويد الملون من دار المعرفة؛ تدرجات الأحمر للمدود، والأخضر للإخفاء والغنة، وأزرقان أحدهما للقلقلة والآخر لتفخيم الراء، بينما الرمادي لا يلفظ.

  • -
  • تلوين أجزاء الرسم: النص العثماني الأساسي بالأسود، والنقاط والتشكيل والحروف المزيدة بالأحمر، والهمزات بالأصفر البرتقالي، وعلامات الوقف بالأزرق.

  • -
  • بغير تلوين: الخط كله باللون الأسود، من غير أي تلوين.

  • -
-

رجاءً لاحظ أن تلوين النص تبعا لقواعد التجويد لا يزال في مراحله الأولى، وهو ليس منسوخا مباشرة من مصحف دار المعرفة، بل هو اجتهاد شخصي مني حاولت فيه مقاربة مصحف دار المعرفة قدر الإمكان؛ فأي خطأ تجده في الألوان أرجو أن تراسلني به حتى أصلحه.

-
-
تستطيع استخدام لوحة المفاتيح وحدها، من غير المؤشر (الفأرة أو لوحة اللمس).
-

استخدم زر Tab للوصول إلى قائمة «من سورة». عندئذ زرّي («سهم لأعلى») و  («سهم لأسفل») ينقلانك بين السور بالترتيب، -وتستطيع أيضا كتابة جزء من بداية اسم السورة للوصول إليها سريعا، -وزرّ المسافة يظهر لك القائمة. وبعد تحديد السورة، زر Enter ينقلك للخانة التالية، خانة اختيار آية البداية. -عندئذ تستطيع كتابة رقم الآية مباشرةً أو استخدام زرّي («سهم لأعلى») و («سهم لأسفل»). -زر Enter ينقلك للخانة التالية، ثم للخانة للأخيرة، ثم إلى زر «ابدأ»، والذي عنده زر Enter أو المسافة يظهر الكلمة التالية.

-
-
يمكنك الانتقال إلى الأمام وإلى الخلف، بالكلمة وبالآية وبالعبارة.
-
    -
  • زر المسافة أو Enter أو سهم يسار: إظهار الكلمة التالية (مثل زر بأسفل الشاشة).

  • -
  • زر إظهار الكلمة التالية + Shift أو Ctrl أو Alt: إظهار الآية الحالية بالكامل (مثل زر ❮❮❮ بأسفل الشاشة).

  • -
  • زر Backspace أو سهم يمين: إخفاء الكلمة الحالية (مثل زر بأسفل الشاشة).

  • -
  • زر إخفاء الكلمة الحالية + Shift أو Ctrl أو Alt: إخفاء الآية الحالية بالكامل (مثل زر ❯❯❯ بأسفل الشاشة).

  • -
-
-

«العبارة» المقصود بها تقسيم الآية بعلامات الوقف:

-
    -
  • فمن بداية الآية حتى علامة الوقف الأولى هو عبارة،

  • -
  • ومن علامة الوقف الأخيرة في الآية حتى نهاية الآية هو عبارة،

  • -
  • وما بين علامتي وقف هو عبارة.

  • -
-

وتستخدم:

-
    -
  • زر الصفر للانتقال عبارة واحدة إلى الأمام (مثل زر ❮❮ بأسفل الشاشة).

  • -
  • زر الواحد للانتقال عبارة واحدة إلى الخلف (مثل زر ❯❯ بأسفل الشاشة).

  • -
-
-
يجب التلاوة على شيخ مُجيد، وعدم الاعتماد على الرسم الإملائي.
-

القرآن لا يُعلَّم إلا بالمشافهة، أي أن تسمع القرآن من شيخ مُجيد وتتلو عليه ليصحح لك نطقك.

-

الكتابة أمرٌ ثانوي عند حفظ القرآن.

-

القراءة من المصحف ووضع التسميع العثماني لن يساعداك إذا لم تسمع التلاوة الصحيحة، وتتلوها على شيخ مُجيد ليصحح لك النطق.

-

وأيضا وضع التسميع الإملائي (الكتابي) لا يختبر التشكيل، مما قد يسبب أخطاءً مهولة، مثل إبدال المتكلم والمخاطب مثل «أنعمتَ» في الآية الأخيرة من سورة الفاتحة، أو إبدال الفاعل والمفعول به مثل «وإذ ابتلى إبراهيمَ ربُّه» في الآية ١٢٤ من سورة البقرة أو «إنما يخشى اللهَ من عباده العلماءُ» في الآية ٢٨ من سورة فاطر.

-

ما هذا التطبيق إلا وسيلة مساعدة لاختبار الحفظ لتثبيته. ولكنه ليس بديلا عن معلم إنسان.

-
-
يمكن برمجة هذا التطبيق أو تضمينه في برامج ويب أخرى.
-

باستخدام مُعامِلات الرابط، يمكن تحديد القيم المبدئية لجميع الخيارات، بل وتحديد الآيات المراد تسميعها، حتى بتقسيمات غير متاحة في واجهة الويب، مثل «تسميع الصفحة العاشرة وخمس آيات بعدها» أو «الجزأين الثالث والرابع وآية قبلهما وآيتين بعدهما»، وغير ذلك.

-

انظر صفحة اقرأني بالعربية أو بالإنجليزية في مستودع المشروع.

-
-
لم يُدقق هذا النص رسميًا بعد.
-

إذا وجدت فيه أي خطأ، رجاءً أبلغني في أسرع وقت! هذا النص يستخدم النسخة الأخيرة (المؤرخة ١٩ / ٠٥ / ٢٠٢٠) من مشروع -Quran Data.

-

أما النص الإملائي فهو من ويكي‌مصدر.

-
- - -
-
- - - - - - - - - - - -

- -
- -
- - - - -
- -
- - - - -
- - -
- -
- - - -
- - - - - - - - -
-
- - - - - - - - - - +راجع ما تحفظ من القرآن الكريم | رسايت

خيارات وضع التسميع العثماني (بلا كتابة):

أسئلة عامة

ما هذا؟

هذا تطبيق يساعدك على اختبار حفظك من القرآن الكريم.

أليست المراجعة مع شيخ مُجيد أفضل؟

بالتأكيد؛ ما هذا التطبيق إلا وسيلةً مساعدة. ولن يفيد من لا يستطيع التلاوة الصحيحة من المصحف بالتجويد. ولن يُصحح لك أخطاء التجويد إن لم تكن تعلم معنى العلامات المستخدمة في المصحف.

فالهدف من هذا التطبيق ليس استبدال المعلم، بل أن يكون مكمّلا ومساعدا لك، فلا معنى للحفظ من غير تصحيح التلاوة، وهذا لا يساعدك فيه إلا إنسان مُجيد.

انظر أيضا النقطة «يجب التلاوة على شيخ مُجيد، وعدم الاعتماد على الرسم الإملائي» بالأسفل.

هل سيساعدني هذا التطبيق على الحفظ؟

لا. هذا ليس إلا وسيلة لاختبار حفظك ومعرفة نقاط ضعفك ومن ثَم مساعدتك على تثبيت حفظك. لكنه ليس للتحفيظ؛ عليك أن تحفظ مع شيخ مُجيد أولا ليضبط لك النطق، وبعد أن تحفظ، تستطيع أن تراجع هنا.

ولكن يمكنك استخدامه عبر مشروعنا الآخر «ذِكر الذِكر»، فهو «نظام تكرار متباعد» ليساعدك في تثبيت حفظك للقرآن الكريم. و«ذِكر الذِكر» يستخدم هذا التطبيق لاختبار حفظك، لكنه يسهّل عليك تقسيم الحفظ واختيار ما تحتاج مراجعته.

أليست الكتابة أفضل؟

نعم، الكتابة يدويا على لوح بالرسم العثماني هي من أفضل الطرق على الإطلاق لتثبيت حفظ القرآن الكريم. وهي الطريقة المتبعة في الكثير من الدول الإسلامية خصوصا في أفريقيا.

ولكن الكتابة بالرسم العثماني على الحاسوب ليست يسيرة. وإذا أردنا أن نقارب، فنكتب بالرسم الإملائي الحديث ومن غير تشكيل، فسنجد أنها تصير بطيئة ومتعبة عند الاقتراب من نهاية حزب واحد (تختلف من شخص لآخر).

ولكن إذا أردت تجربتها، فيمكنك اختيار الوضع الـ«إملائي» من أمام «وضع التسميع» في شاشة «الخيارات» ثم بدء التسميع (أو اضغط «إعادة» إن كنت قد بدأت التسميع بالفعل).

شخصيا أنصح بالطريقتين معا؛ فإظهار الكلمات بالرسم العثماني يُماثل القراءة من المصحف ويسهل عليك مراجعة حركات الحروف (بالتجويد) كما أنه سريع نسبيا مما يتيح مراجعة كمّ أكبر في وقت أقل، والكتابة تجبرك على التلاوة بتمهّل وإدخال كل كلمة حرفا حرفا ومعرفة مواضع الفواصل بين الكلمات والآيات.

كيف أستخدمه؟

اختر سورةً تود تسميعها من الخانة التي أمام «من السورة»، ثم اضغط زر «ابدأ»، سيظهر شريط أزرار. كل ضغطة على الزر الكبير () ستُظهر كلمة.

انظر أيضا النقطة «يمكنك الانتقال إلى الأمام وإلى الخلف، بالكلمة وبالآية وبالعبارة» بالأسفل.
وإذا كنت تستخدم الوضع الإملائي (الكتابي)، فانظر النقطة «كيف أستخدم التسميع الكتابي (الوضع الإملائي)؟» بالأسفل.

اتلُ الجزء الذي حددته، وبعد تلاوة كل كلمة، اضغط على الزر حتى تُظهرها. فإذا كانت صحيحة (بتشكيلها)، تابع تلاوتك، وإلا فسجّل هذا الموضع في كراسة مثلا، وأعد تلاوتك من بداية الآية أو من الآية السابقة، حتى تصل إلى الكلمة التالية، ثم اضغط لإظهارها. واستمر هكذا حتى تنتهي. ثم راجع المواضع التي أخطأت فيها.

ويمكنك استخدامه عبر مشروعنا الآخر «ذِكر الذِكر»، فهو «نظام تكرار متباعد» ليساعدك في تثبيت حفظك للقرآن الكريم. و«ذِكر الذِكر» يستخدم هذا التطبيق لاختبار حفظك، لكنه يسهّل عليك تقسيم الحفظ واختيار ما تحتاج مراجعته.

لماذا توجد خانتين لإدخال السورة المرادة؟

لأن هذا التطبيق يتيح لك مراجعة أي عدد من الآيات المتتالية في المصحف، بغض النظر عن سورها. فتستطيع مثلا مراجعة الجزء الثالث، والذي يبدأ في سورة البقرة وينتهي في منتصف سورة آل عمران. كذلك تستطيع مراجعة حزب معين، أو ربع، أو حتى صفحة واحدة، أو صفحتين متقابلتين، أو عشر سور متتالية. كل ما عليك هو تحديد آية البداية وسورتها، وآية النهاية وسورتها.

كيف يمكنني الاستماع إلى التلاوة الصوتية للآيات؟

اضغط على «أظهر الخيارات» ثم اختر القارئ الذي تحب الاستماع إليه من الخانة التي أمام «تلاوة بصوت». وعندئذ، بمجرد إظهار الكلمة الأخيرة من كل آية (أو ضغط Enter في نهايتها في الوضع الإملائي)، سيتلو القارئ هذه الآية.

انظر أيضا سؤال «ما هو الوضع المعلم؟» التالي.

جزى الله خيرا القائمين على مشروع Verse By Verse MP3 Quran لتوفيرهم التلاوات الصوتية لنا ولبرنامج آيات.

ما هو الوضع المعلم؟

قبل تفعيل الوضع المعلم، فإن باختيارك لتلاوة صوتية ستسمع كل آية بعد إنهاء تسميعها. أما الوضع المعلم فسيجعل التلاوة الصوتية للآية قبل بدء تسميعها.

وسُمّي الوضع المعلم بهذا الاسم لأنه يناظر المصحف المعلم، وهو تسجيل صوتي للقرءان الكريم يتوقف فيه الشيخ بعد كل آية مقدارًا كافيًا ليكرر المستمع الآية التي تلاها الشيخ.

ففي الوضع المعلم تسمع الآية من الشيخ الذي تختاره ثم تتلوها نطقا وكتابة، بدلا من أن تتلوها من الذاكرة.

طبعا لا يُغني الوضع المعلم عن وضع التسميع العادي (اختبار الحفظ) ولا عن الشيخ المعلم (الإنسان).

كيف أستخدم التسميع الكتابي (الوضع الإملائي)؟

بمجرد اختياره من شاشة «الخيارات» من أمام «وضع التسميع» ثم بدء التسميع (أو إعادته إن كنت قد بدأت التسميع على الوضع العثماني)، فستجد أن خانة الكتابة محددة آليا حتى تبدأ الكتابة فيها مباشرة.

لاحظ أن:

  • الآية الأولى من جميع السور مسبوقة بالبسملة على سطر وحدها (باستثناء سورة التوبة، فهي لا تبدأ بالبسملة مطلقا، وكذلك الفاتحة لأن آيتها الأولى هي البسملة).

  • كل آية على سطر وحدها، أي تنتهي بضغطة على زر Enter، حتى الآية الأخيرة تنتهي بضغطة على زر Enter.

  • بين كل كلمة في الآية مسافة واحدة فقط. ولا مسافة قبل الكلمة الأولى من الآية ولا بعد الكلمة الأخيرة منها.

  • بمجرد انتهاء الآية (بضغط زر Enter)، يُضاف رقم الآية آليا، وإذا كنت قد اخترت قارئا من شاشة «الخيارات» فسيتلوها كذلك.

  • عند الخطأ في أي حرف، يتغير لون خانة الكتابة إلى الأحمر.

  • يمكن جعل مراجعة الأخطاء تتم بعد كل كلمة وليس كل حرف، من شاشة «الخيارات».

  • لا تكتب علامات التشكيل، أبدا؛ جميع علامات التشكيل التي تكتبها ستُحذف قبل إضافة علامات التشكيل الصحيحة. قد يتغير هذا في المستقبل.

  • الألف المقصورة والياء حرفان مختلفان. الألف المقصورة هي ألف في آخر الكلمة وتُرسم ياءً بغير نقطتين، وتوجد في الصف الأسفل من لوحة المفاتيح، تحت زر الألف غالبا. أما الياء فتحتها نقطتين دائما، حتى في آخر الكلمة. وتوجد غالبا على الزر الثالث من اليسار في الصف الأوسط، بين الباء والسين.

  • الهمزات صعبة. أعرف هذا. ¯\_(ツ)_/¯

لدي مشكلة أو اقتراح، كيف أتواصل معك؟

عبر مسائل GitHub، أو البريد الإلكتروني: [hidden]، على أن توضّح في الحالتين في العنوان أنك تقصد «رسايت ويب» (اسم هذا التطبيق).

ملاحظات متفرقة

النص في هذا التطبيق برواية حفص عن عاصم.

حتى عند اختيار تلاوة صوتية براوية ورش عن نافع، يظل النص القرآني برواية حفص عن عاصم.

النص العثماني للقرآن ملون تبعا لقواعد التجويد، ويمكن تغيير ذلك.

يمكن تغيير ذلك من خانة «تلوين النص» في شاشة «الخيارات»، والتي تتيح لنا ثلاث قيم:

  • تبعا لقواعد التجويد: مثل مصحف التجويد الملون من دار المعرفة؛ تدرجات الأحمر للمدود، والأخضر للإخفاء والغنة، وأزرقان أحدهما للقلقلة والآخر لتفخيم الراء، بينما الرمادي لا يلفظ.

  • تلوين أجزاء الرسم: النص العثماني الأساسي بالأسود، والنقاط والتشكيل والحروف المزيدة بالأحمر، والهمزات بالأصفر البرتقالي، وعلامات الوقف بالأزرق.

  • بغير تلوين: الخط كله باللون الأسود، من غير أي تلوين.

رجاءً لاحظ أن تلوين النص تبعا لقواعد التجويد لا يزال في مراحله الأولى، وهو ليس منسوخا مباشرة من مصحف دار المعرفة، بل هو اجتهاد شخصي مني حاولت فيه مقاربة مصحف دار المعرفة قدر الإمكان؛ فأي خطأ تجده في الألوان أرجو أن تراسلني به حتى أصلحه.

تستطيع استخدام لوحة المفاتيح وحدها، من غير المؤشر (الفأرة أو لوحة اللمس).

استخدم زر Tab للوصول إلى قائمة «من سورة». عندئذ زرّي («سهم لأعلى») و  («سهم لأسفل») ينقلانك بين السور بالترتيب، وتستطيع أيضا كتابة جزء من بداية اسم السورة للوصول إليها سريعا، وزرّ المسافة يظهر لك القائمة. وبعد تحديد السورة، زر Enter ينقلك للخانة التالية، خانة اختيار آية البداية. عندئذ تستطيع كتابة رقم الآية مباشرةً أو استخدام زرّي («سهم لأعلى») و («سهم لأسفل»). زر Enter ينقلك للخانة التالية، ثم للخانة للأخيرة، ثم إلى زر «ابدأ»، والذي عنده زر Enter أو المسافة يظهر الكلمة التالية.

يمكنك الانتقال إلى الأمام وإلى الخلف، بالكلمة وبالآية وبالعبارة.
  • زر المسافة أو Enter أو سهم يسار: إظهار الكلمة التالية (مثل زر بأسفل الشاشة).

  • زر إظهار الكلمة التالية + Shift أو Ctrl أو Alt: إظهار الآية الحالية بالكامل (مثل زر ❮❮❮ بأسفل الشاشة).

  • زر Backspace أو سهم يمين: إخفاء الكلمة الحالية (مثل زر بأسفل الشاشة).

  • زر إخفاء الكلمة الحالية + Shift أو Ctrl أو Alt: إخفاء الآية الحالية بالكامل (مثل زر ❯❯❯ بأسفل الشاشة).


«العبارة» المقصود بها تقسيم الآية بعلامات الوقف:

  • فمن بداية الآية حتى علامة الوقف الأولى هو عبارة،

  • ومن علامة الوقف الأخيرة في الآية حتى نهاية الآية هو عبارة،

  • وما بين علامتي وقف هو عبارة.

وتستخدم:

  • زر الصفر للانتقال عبارة واحدة إلى الأمام (مثل زر ❮❮ بأسفل الشاشة).

  • زر الواحد للانتقال عبارة واحدة إلى الخلف (مثل زر ❯❯ بأسفل الشاشة).

يجب التلاوة على شيخ مُجيد، وعدم الاعتماد على الرسم الإملائي.

القرآن لا يُعلَّم إلا بالمشافهة، أي أن تسمع القرآن من شيخ مُجيد وتتلو عليه ليصحح لك نطقك.

الكتابة أمرٌ ثانوي عند حفظ القرآن.

القراءة من المصحف ووضع التسميع العثماني لن يساعداك إذا لم تسمع التلاوة الصحيحة، وتتلوها على شيخ مُجيد ليصحح لك النطق.

وأيضا وضع التسميع الإملائي (الكتابي) لا يختبر التشكيل، مما قد يسبب أخطاءً مهولة، مثل إبدال المتكلم والمخاطب مثل «أنعمتَ» في الآية الأخيرة من سورة الفاتحة، أو إبدال الفاعل والمفعول به مثل «وإذ ابتلى إبراهيمَ ربُّه» في الآية ١٢٤ من سورة البقرة أو «إنما يخشى اللهَ من عباده العلماءُ» في الآية ٢٨ من سورة فاطر.

ما هذا التطبيق إلا وسيلة مساعدة لاختبار الحفظ لتثبيته. ولكنه ليس بديلا عن معلم إنسان.

يمكن برمجة هذا التطبيق أو تضمينه في برامج ويب أخرى.

باستخدام مُعامِلات الرابط، يمكن تحديد القيم المبدئية لجميع الخيارات، بل وتحديد الآيات المراد تسميعها، حتى بتقسيمات غير متاحة في واجهة الويب، مثل «تسميع الصفحة العاشرة وخمس آيات بعدها» أو «الجزأين الثالث والرابع وآية قبلهما وآيتين بعدهما»، وغير ذلك.

انظر صفحة اقرأني بالعربية أو بالإنجليزية في مستودع المشروع.

لم يُدقق هذا النص رسميًا بعد.

إذا وجدت فيه أي خطأ، رجاءً أبلغني في أسرع وقت! هذا النص يستخدم النسخة الأخيرة (المؤرخة ١٩ / ٠٥ / ٢٠٢٠) من مشروع Quran Data.

أما النص الإملائي فهو من ويكي‌مصدر.


\ No newline at end of file diff --git a/minify.pl b/minify.pl index e6031cf..7325afb 100755 --- a/minify.pl +++ b/minify.pl @@ -6,69 +6,22 @@ binmode STDOUT, ':encoding(UTF-8)'; sub slurp { local $/; open my $f, '<', shift; return scalar <>; } - -sub minify_js { my $t = shift; - # remove comments - $t =~ s| \h* (? } sub minify_html { my $t = shift; - # remove comments + ## remove comments $t =~ s|||gs; - # minify js - $t =~ s|(?<=)|minify_js("$&")|gse; - # minify css - $t =~ s|(?<=)|minify_css("$&")|gse; - # collapse spaces + ## collapse spaces $t =~ s|\s+| |g; - # remove horizontal spaces around punctuation - $t =~ s|(?<=\W) (?=\W)||g; - $t =~ s|(?<=[^\w"]) (?=\w)||g; # don't remove the space between html attributes - $t =~ s| (?=\W)||g; - # remove leading and trailing spaces + ## remove horizontal spaces around punctuation + $t =~ s|> <|><|g; + # $t =~ s|(?<=\W) (?=\W)||g; + # $t =~ s|(?<=[^\w"]) (?=\w)||g; # don't remove the space between html attributes + # $t =~ s| (?=\W)||g; + ## remove leading and trailing spaces $t =~ s|\A\s+||g; $t =~ s|\s+\Z||g; - # restore the newline after doctype (if any) + ## restore the newline after doctype (if any) $t =~ s||$&\n|i; return $t; } @@ -77,5 +30,5 @@ print minify_html(slurp($ARGV[0])) } else { - die "Expected a file in the first arg!\n" + print minify_html(slurp_stdin) } diff --git a/scripts.min.js b/scripts.min.js new file mode 100644 index 0000000..29d8ba0 --- /dev/null +++ b/scripts.min.js @@ -0,0 +1 @@ +"use strict";const r=e=>[...Array(e).keys()];function j(e){return document.querySelector(e)}function P(e){return document.querySelectorAll(e)}function i(e){return document.getElementById(e)}const e=i("dark"),n=i("body"),D=i("all"),F=i("help"),I=i("helptoggle"),W=i("optiontoggle"),N=i("options"),X=i("darkmode_option"),U=i("darkmode_input"),J=i("teacher_option"),Z=i("teacher_input"),O=i("qaris"),Q=i("qariurl"),V=i("guide"),G=i("quizmode_option"),o=i("quizmode"),Y=i("uthm_options"),ee=i("uthm_options_title"),ne=i("mvbtns_input"),te=i("textclr_input"),ie=i("ayatnum_input"),ae=i("linebreaks_input"),re=i("imla_options"),oe=i("imla_options_title"),le=i("feedbackrate"),ue=i("helpcontent"),d=i("player"),ce=i("preloader"),l=i("title"),se=i("selectors"),a=i("sura_bgn"),u=i("aaya_bgn"),c=i("sura_end"),s=i("aaya_end"),h=i("ok"),de=i("header"),he=i("zzignore"),f=i("new"),fe=i("repeat"),ye=i("end_of_header"),y=i("uthm_txt"),m=i("imla_txt"),p=i("endmsg"),g=i("zzback"),t=i("mvbtns"),me=i("prevaaya"),pe=i("prevjmla"),ge=i("prevword"),ve=i("nextword"),we=i("nextjmla"),be=i("nextaaya");function Ke(){n.scrollTo({top:0})}function ke(){n.scrollTo({top:n.scrollHeight})}function _e(e){e.style.visibility="hidden",e.style.opacity="0%"}function qe(e){e.style.visibility="visible",e.style.opacity="100%"}function v(e){return e.toString().replace(/[0٠]/g,"٠").replace(/[1١]/g,"١").replace(/[2٢]/g,"٢").replace(/[3٣]/g,"٣").replace(/[4٤]/g,"٤").replace(/[5٥]/g,"٥").replace(/[6٦]/g,"٦").replace(/[7٧]/g,"٧").replace(/[8٨]/g,"٨").replace(/[9٩]/g,"٩").replace(/[^٠١٢٣٤٥٦٧٨٩]/g,"")}function ze(e){return e.replace(/٠/g,"0").replace(/١/g,"1").replace(/٢/g,"2").replace(/٣/g,"3").replace(/٤/g,"4").replace(/٥/g,"5").replace(/٦/g,"6").replace(/٧/g,"7").replace(/٨/g,"8").replace(/٩/g,"9")}const xe=()=>""===a.value?0:z[+a.value],Le=()=>""===c.value?0:z[+c.value],w=()=>""===a.value?"":+a.value,b=()=>""===c.value?"":+c.value,K=()=>""===u.value?"":+ze(u.value),k=()=>""===s.value?"":+ze(s.value);function Ae(e){var n=e.target,e="blur"===e.type,t=n===u||n===s,t=(u.value=v(u.value),s.value=v(s.value),e&&t&&""===n.value&&(n===u?""!==a.value&&(n.value=0):""!==c.value&&(n.value=300)),e=>u.value=v(+e)),i=e=>s.value=v(+e);e||n!==a?!e&&n===c&&(i(Le()),""===w()||""!==b()&&b()xe()&&t(xe()),k()>Le()&&i(Le()),0===K()&&t(1),0===k()&&i(1),""!==w()&&""!==b()&&""!==K()&&""!==k()?h.disabled=!1:h.disabled=!0}const _=function(){let n,t,i;function a(e){return null!=e?e:i}function r(e){return null==(e=a(e))||e<0||!t||!n||e>=n.length}function o(e){if(!r(e=a(e)))return t+n[e]+".mp3"}function l(e){r(e=a(e))||(ce.src=o(e))}function u(e){i=e,l()}function c(){(r()?_e:qe)(d)}function s(e){t=e?`https://www.everyayah.com/data/${e}/`:void 0,l()}return{update_qari:function(e){s(e),c()},init:function(e,n){s(e),!e&&n&&(t=n.endsWith("/")?n:n+"/"),u(0)},fill:function(e){n=e,u(0),c()},play:function(e){null!=e&&u(e),c(),r()||(d.src=o(),d.addEventListener("loadeddata",()=>l(i+1)),d.play())},set_index:function(e){u(e)},next:function(){u(i+1)},back:function(){u(i-1)}}}();function Me(e){var n=e.slice(-1);return""===n||"\n"===n?"a":"ۜ\t"===e||"ۖ\t"===e||"ۗ\t"===e||"ۘ\t"===e||"ۚ\t"===e||"ۛ\t"===e?"j":""}function Se(e,n,t,i){return""!==e&&""!==n&&""!==t&&""!==i&&e<=t&&(n<=i||ei(e).style.display="block",n=e=>i(e).style.display="none";q("quizmode",o.value),"imla"===o.value?(n("uthm_options"),e("imla_options")):(n("imla_options"),e("uthm_options"))}function Te(e){return e.replace(/\S*$/,"")}function Ee(e){return e}function change_feedbackrate(){window.imlafilter="word"===le.value?Te:Ee,q("feedbackrate",le.value)}function Ce(e,n){return e.remove_imla_additions().startsWith(imlafilter(n).remove_imla_additions())}String.prototype.remove_imla_additions=function(){return this.replace(/[\u064B-\u0652\xA0\u06DD٠-٩]+/g,"")},String.prototype.count_char=function(e){return(" "===e?this.replace(/[^ ]+/g,""):"\n"===e?this.replace(/[^\n]+/g,""):this.replace(new RegExp("[^"+e+"]+","g"),"")).length},window.imlafilter=Ee;const He=(e,n)=>n?j("body").classList.add(e):j("body").classList.remove(e),Re=(e,n,t)=>t?e.classList.add(n):e.classList.remove(n);function change_tajweed(){var e=i("textclr_input").value;He("letter-parts","bas"===e),He("letter-nocolor","no"===e),q("tajweed",e.slice(0,1))}function change_ayatnum(){var e=i("ayatnum_input").checked;He("ayat-nocolor",!e),q("ayatnum",e)}function change_linebreaks(){var e=!i("linebreaks_input").checked;Re(y,"nb",e),q("linebreaks",!e)}function change_dark(){var e=i("darkmode_input").checked;q("dark",i("dark").checked=e)}function change_mvbtns(){var e=i("mvbtns_input").value,n="right"===e?"sidebtns rightside":"left"===e?"sidebtns leftside":"";t.setAttribute("class",n),q("mvbtns",e.slice(0,1))}function Be(){var e=i("xyz"),n=j("body").innerHTML.match(/github[.]com\/([a-z0-9]+)\//)[1];e.innerHTML=n+String.fromCharCode(64)+"pro"+(""+!0)[0]+"moc.liamno".split("").reverse().join(""),e.href=e.innerHTML.slice(16,20)+"to"+String.fromCharCode(64^"xyz".charCodeAt(2))+e.innerHTML}function $e(e,n,t,i){e=+e,n=+n,t=+t,i=+i;var a=z[e-1],r=z[t-1],o=Je[e-1],l=Je[t-1],a=1===n?"الأولى":n===a?v(n)+" الأخيرة":v(n),u=1===i?"الأولى":i===r?v(i)+" الأخيرة":v(i);return e===t?n===i?[`تسميع الآية ${a} من سورة `+o,""]:i===n+1?[`تسميع الآيتين ${a} و${u} من سورة `+o,""]:1===n&&i===r?[`تسميع سورة ${o} كاملة`,""]:[`تسميع سورة ${o} من الآية ${a} حتى الآية `+u,""]:1===n&&i===r?t===e+1?[`تسميع سورتي ${o} و${l} كاملتين`,""]:[`تسميع السور من ${o} حتى `+l,""]:[`تسميع من سورة ${o} الآية ${a} حتى سورة ${l} الآية `+u,"manymany"]}function je(e,n){var t,i,a;n&&(t=e.selectionStart,a=e.selectionEnd,i=e.value.substring(0,t),a=e.value.substring(a,e.value.length),e.value=i+n+a,e.selectionStart=e.selectionEnd=t+n.length)}const Pe={arak:{Backquote:["`","~"],Minus:["[","{"],Equal:["]","}"],KeyQ:["ض",'"'],KeyW:["ع","غ"],KeyE:["ب","پ"],KeyR:["ح","َ"],KeyT:["س","ً"],KeyY:["خ","ٌ"],KeyU:["د","ُ"],KeyI:["أ","آ"],KeyO:["ك","گ"],KeyP:["ج","چ"],BracketLeft:["/","؟"],BracketRight:["=","+"],KeyA:["ه","؛"],KeyS:["ي","»"],KeyD:["م","«"],KeyF:["ن","ْ"],KeyG:["ف","ڤ"],KeyH:["ت","ث"],KeyJ:["ل","ّ"],KeyK:["ا","ء"],KeyL:["و","ؤ"],Semicolon:["ر",">"],Quote:["إ","<"],KeyZ:[".",":"],KeyX:["،","ـ"],KeyC:["ش","_"],KeyV:["ق","-"],KeyB:["ص","'"],KeyN:["ذ","ٍ"],KeyM:["ة","ِ"],Comma:["ى","ئ"],Period:["ز","ژ"],Slash:["ط","ظ"]},dv:{Backquote:["`","~"],Minus:["[","{"],Equal:["]","}"],KeyQ:["'",'"'],KeyW:["،","<"],KeyE:[".",">"],KeyR:["ط","ظ"],KeyT:["ى","آ"],KeyY:["ف","ڤ"],KeyU:["غ","ـ"],KeyI:["ص","ض"],KeyO:["ر","»"],KeyP:["ل","«"],BracketLeft:["/","؟"],BracketRight:["=","+"],KeyA:["ا","أ"],KeyS:["ع","إ"],KeyD:["ه","ة"],KeyF:["و","ؤ"],KeyG:["ي","ئ"],KeyH:["د","َ"],KeyJ:["ح","ً"],KeyK:["ت","ٌ"],KeyL:["ن","ُ"],Semicolon:["س","ش"],Quote:["-","_"],KeyZ:["؛",":"],KeyX:["ق","ء"],KeyC:["ج","چ"],KeyV:["ك","گ"],KeyB:["خ","ْ"],KeyN:["ب","پ"],KeyM:["م","ّ"],Comma:["ث","ٍ"],Period:["ذ","ِ"],Slash:["ز","ژ"]},ibm:{Backquote:["ذ","ّ"],Minus:["-","_"],Equal:["=","+"],KeyQ:["ض","َ"],KeyW:["ص","ً"],KeyE:["ث","ُ"],KeyR:["ق","ٌ"],KeyT:["ف","لإ"],KeyY:["غ","إ"],KeyU:["ع","`"],KeyI:["ه","÷"],KeyO:["خ","×"],KeyP:["ح","؛"],BracketLeft:["ج","<"],BracketRight:["د",">"],KeyA:["ش","ِ"],KeyS:["س","ٍ"],KeyD:["ي","]"],KeyF:["ب","["],KeyG:["ل","لأ"],KeyH:["ا","أ"],KeyJ:["ت","ـ"],KeyK:["ن","،"],KeyL:["م","/"],Semicolon:["ك",":"],Quote:["ط",'"'],KeyZ:["ئ","~"],KeyX:["ء","ْ"],KeyC:["ؤ","}"],KeyV:["ر","{"],KeyB:["لا","لآ"],KeyN:["ى","آ"],KeyM:["ة","'"],Comma:["و",","],Period:["ز","."],Slash:["ظ","؟"]},mac:{Backquote:["§","±"],Minus:["-","_"],Equal:["=","+"],KeyQ:["ض","َ"],KeyW:["ص","ً"],KeyE:["ث","ِ"],KeyR:["ق","ٍ"],KeyT:["ف","ُ"],KeyY:["غ","ٌ"],KeyU:["ع","ْ"],KeyI:["ه","ّ"],KeyO:["خ","]"],KeyP:["ح","["],BracketLeft:["ج","}"],BracketRight:["ة","{"],KeyA:["ش","»"],KeyS:["س","«"],KeyD:["ي","ى"],KeyF:["ب",""],KeyG:["ل",""],KeyH:["ا","آ"],KeyJ:["ت",""],KeyK:["ن",""],KeyL:["م",""],Semicolon:["ك",":"],Quote:["؛",'"'],KeyZ:["ظ",""],KeyX:["ط",""],KeyC:["ذ","ئ"],KeyV:["د","ء"],KeyB:["ز","أ"],KeyN:["ر","إ"],KeyM:["و","ؤ"],Comma:["،",">"],Period:[".","<"],Slash:["/","؟"]}},De={t:"taj",taj:"taj",tajweed:"taj",b:"bas",bas:"bas",basic:"bas",n:"no",no:"no",none:"no"};function Fe(e){return De[e.toLowerCase()]}const Ie={i:"imla",imla:"imla",imlaai:"imla",u:"uthm",uthm:"uthm",uthmani:"uthm"};function We(e){return Ie[e.toLowerCase()]}function Ne(e){return""==(e=e.toLowerCase())||"b"==e?"bottom":"r"==e?"right":"l"==e?"left":void 0}function Xe(e){let i,a="taj",r="bottom",o,l,u,c,s,d,h,f,y,m,p,g;return e.slice(1).split("&").map(e=>e.split("=")).forEach((n,e)=>{var t=(...e)=>e.includes(n[0]);t("dark","d")?i=!0:t("light","l")?i=!1:t("color","c")?a=Fe(n[1])||a:t("mvbtns","mv","m")?r=Ne(n[1])||r:t("quizmode","qz","q")?o=We(n[1])||o:t("txt")?o=We("imlaai"):t("byword")?l=!0:t("byletter")?l=!1:t("linebreaks")?u=!1:t("nolinebreaks")?u=!0:t("t","teach","teacher")?d=!0:t("n","noteach","noteacher")?d=!1:t("dt","disableteacher")?h=!0:t("dq","disablequizmode")?f=!0:t("hc","highcontrast")?y=!0:t("emu","emulate","emulation")?m=n[1]:t("qari")?c=n[1]:t("qariurl")?s=n[1]:t("cn")?p=!0:t("zz")&&(g=!0)}),{dark:i,color:a,mv:r,quizmode:o,byword:l,nolinebreaks:u,teacher:d,disableteacher:h,disablequizmode:f,highcontrast:y,emulate:m,qari:c,qariurl:s,cn:p,zz:g}}function Ue(){var e=Xe(window.location.hash||window.location.search),n=(e.quizmode=null!=e.quizmode?e.quizmode:i("quizmode").value,i("quizmode").value=e.quizmode,i("quizmode").onchange(),e.highcontrast&&i("body").classList.add("highcontrast"),delete e.highcontrast,null==e.dark&&(e.dark=window.matchMedia("(prefers-color-scheme: dark)").matches),i("darkmode_input").checked=e.dark,i("darkmode_input").onchange(),delete e.dark,i("teacher_input").checked=e.teacher,i("qaris").value=e.qari,i("qaris").value||(i("qaris").value=""),i("qaris").oninput(),e.qariurl&&(i("qaris").value="_"),i("qariurl").value=e.qariurl||"",i("textclr_input").value=e.color,i("textclr_input").onchange(),delete e.color,i("mvbtns_input").value=e.mv,i("mvbtns_input").onchange(),delete e.mv,i("feedbackrate").value=e.byword?"word":"",i("feedbackrate").onchange(),delete e.byword,i("linebreaks_input").checked=!e.nolinebreaks,i("linebreaks_input").onchange(),delete e.nolinebreaks,e=>e.style.display="none");e.disableteacher&&n(i("teacher_option")),delete e.disableteacher,e.disablequizmode&&(n(i("quizmode_option")),P(".mode_options_title").forEach(n)),delete e.disablequizmode,e.emulate&&Pe[e.emulate]&&(window.emulate=e.emulate)}Ue();const z=[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],Je=["الفاتحة","البقرة","آل عمران","النساء","المائدة","الأنعام","الأعراف","الأنفال","التوبة","يونس","هود","يوسف","الرعد","إبراهيم","الحجر","النحل","الإسراء","الكهف","مريم","طه","الأنبياء","الحج","المؤمنون","النور","الفرقان","الشعراء","النمل","القصص","العنكبوت","الروم","لقمان","السجدة","الأحزاب","سبأ","فاطر","يس","الصافات","ص","الزمر","غافر","فصلت","الشورى","الزخرف","الدخان","الجاثية","الأحقاف","محمد","الفتح","الحجرات","ق","الذاريات","الطور","النجم","القمر","الرحمن","الواقعة","الحديد","المجادلة","الحشر","الممتحنة","الصف","الجمعة","المنافقون","التغابن","الطلاق","التحريم","الملك","القلم","الحاقة","المعارج","نوح","الجن","المزمل","المدثر","القيامة","الإنسان","المرسلات","النبأ","النازعات","عبس","التكوير","الانفطار","المطففين","الانشقاق","البروج","الطارق","الأعلى","الغاشية","الفجر","البلد","الشمس","الليل","الضحى","الشرح","التين","العلق","القدر","البينة","الزلزلة","العاديات","القارعة","التكاثر","العصر","الهمزة","الفيل","قريش","الماعون","الكوثر","الكافرون","النصر","المسد","الإخلاص","الفلق","الناس"],x=[0,32,50,66,81,98,112,130,148,164,183,195,209,225,239,249,259,269,278,289,307,325,344,367,385,405,425,445,463,478,493,504,516,528,550,566,580,592,606,627,640,655,669,680,695,709,719,735,750,765,777,801,824,847,862,883,899,915,929,939,954,984,1e3,1018,1041,1070,1095,1109,1124,1142,1160,1181,1200,1220,1235,1253,1268,1280,1294,1309,1327,1345,1356,1374,1389,1416,1434,1453,1478,1496,1513,1533,1556,1580,1602,1625,1648,1672,1696,1711,1725,1741,1759,1777,1802,1851,1901,1930,1951,1975,1990,2011,2029,2051,2078,2098,2127,2156,2171,2190,2214,2238,2271,2308,2348,2402,2430,2458,2483,2511,2533,2565,2595,2613,2632,2654,2673,2708,2747,2791,2811,2825,2843,2855,2875,2907,2932,2983,3042,3112,3159,3185,3214,3240,3263,3280,3302,3327,3340,3365,3385,3409,3439,3462,3490,3513,3533,3550,3563,3583,3592,3615,3629,3651,3674,3700,3732,3764,3809,3870,3932,3990,4021,4065,4089,4110,4133,4153,4173,4198,4226,4242,4264,4284,4298,4322,4348,4381,4430,4484,4510,4530,4554,4577,4600,4612,4625,4656,4705,4758,4809,4854,4901,4979,5053,5090,5104,5117,5136,5156,5177,5191,5217,5229,5241,5271,5323,5393,5447,5494,5551,5609,5672,5758,5829,5884,5948,6023,6090,6154,6236],Ze=[0,7,12,23,31,36,44,55,64,68,76,83,90,95,100,108,112,119,126,133,141,148,152,160,170,176,183,188,193,197,203,209,217,222,226,231,237,240,244,252,255,259,263,266,271,276,281,288,289,293,302,308,315,322,330,338,345,354,363,370,376,384,393,401,408,414,425,433,441,446,450,458,466,473,479,487,493,499,504,507,512,516,519,526,530,537,544,552,558,567,572,579,584,587,594,598,606,614,620,627,633,640,647,655,663,668,671,674,678,682,686,692,700,705,710,714,719,726,733,739,745,751,758,764,772,777,782,789,797,807,816,824,833,841,848,857,862,870,879,883,890,899,907,913,920,926,931,935,940,946,954,965,976,984,991,997,1005,1011,1021,1027,1035,1041,1049,1058,1074,1084,1091,1097,1103,1109,1113,1117,1124,1132,1141,1149,1160,1168,1176,1185,1193,1200,1205,1212,1221,1229,1235,1241,1248,1255,1261,1266,1271,1275,1282,1289,1296,1303,1307,1314,1321,1328,1334,1341,1346,1352,1357,1364,1370,1378,1384,1389,1397,1406,1417,1425,1434,1442,1452,1461,1470,1478,1485,1492,1501,1510,1518,1526,1535,1544,1554,1561,1570,1581,1590,1600,1610,1618,1626,1633,1639,1648,1659,1665,1674,1682,1691,1699,1707,1712,1720,1725,1735,1741,1749,1755,1760,1768,1774,1783,1792,1802,1817,1833,1853,1872,1892,1907,1915,1927,1935,1943,1955,1965,1973,1980,1988,1994,2003,2011,2019,2029,2036,2046,2056,2067,2078,2087,2095,2104,2115,2125,2133,2144,2155,2160,2167,2174,2185,2193,2201,2214,2223,2237,2250,2261,2275,2288,2301,2314,2326,2345,2360,2385,2399,2412,2424,2435,2446,2461,2473,2483,2493,2507,2518,2527,2540,2555,2564,2573,2584,2595,2600,2610,2618,2625,2633,2641,2650,2659,2667,2673,2690,2700,2715,2732,2747,2762,2777,2791,2801,2811,2818,2822,2827,2834,2844,2849,2852,2857,2866,2875,2887,2898,2910,2922,2932,2951,2971,2992,3015,3043,3068,3091,3115,3138,3159,3172,3181,3194,3203,3214,3222,3235,3247,3257,3265,3273,3280,3287,3295,3302,3311,3322,3329,3336,3346,3354,3363,3370,3378,3385,3392,3403,3414,3424,3433,3441,3450,3459,3469,3480,3488,3497,3503,3514,3523,3533,3539,3548,3555,3563,3568,3576,3583,3587,3595,3606,3613,3620,3628,3637,3645,3654,3663,3671,3678,3690,3698,3704,3717,3732,3745,3759,3775,3788,3812,3839,3864,3890,3914,3941,3970,3986,3996,4012,4031,4053,4063,4068,4079,4089,4098,4105,4114,4125,4132,4140,4149,4158,4166,4173,4182,4191,4199,4210,4218,4229,4238,4247,4256,4264,4272,4282,4287,4294,4303,4316,4323,4335,4347,4358,4372,4385,4398,4414,4432,4453,4473,4486,4495,4505,4515,4524,4530,4538,4545,4556,4564,4574,4583,4592,4598,4606,4611,4616,4623,4630,4645,4665,4681,4705,4726,4749,4766,4784,4810,4828,4852,4873,4895,4917,4941,4968,4995,5029,5055,5078,5086,5093,5099,5104,5110,5115,5125,5129,5135,5142,5150,5155,5161,5168,5177,5185,5192,5199,5208,5217,5222,5229,5236,5241,5253,5267,5286,5313,5331,5357,5385,5414,5429,5447,5460,5475,5494,5512,5542,5570,5596,5616,5641,5672,5702,5727,5758,5800,5829,5854,5882,5909,5931,5963,5993,6016,6043,6072,6098,6125,6137,6155,6176,6193,6207,6221,6236],L=[[1],[1,8,21,30,40,47,60,62,72,83,87,97,104,113,122,130,142,148,153,164,168,177,183,189,197,211,217,222,229,232,236,243,249,254,258,261,267,274,282,284],[1,10,21,31,42,55,64,72,81,92,102,110,121,130,144,149,156,172,181,190],[1,11,15,23,26,34,43,51,60,71,77,88,92,97,101,105,113,116,127,135,142,153,163,172],[1,6,12,20,27,35,44,51,57,67,78,87,94,101,109,116],[1,11,21,31,42,51,56,61,71,83,91,95,101,111,122,130,141,145,151,155],[1,11,26,32,40,48,54,59,65,73,85,94,100,109,127,130,142,148,152,158,163,172,182,189],[1,11,20,29,38,45,49,59,65,70],[1,7,17,25,30,38,43,60,67,73,81,90,100,111,119,123],[1,11,21,31,41,54,61,71,83,93,104],[1,9,25,36,50,61,69,84,96,110],[1,7,21,30,36,43,50,58,69,80,94,105],[1,8,19,27,32,38],[1,7,13,22,28,35,42],[1,16,26,45,61,80],[1,10,22,26,35,41,51,61,66,71,77,84,90,101,111,120],[1,11,23,31,41,53,61,71,78,85,94,101],[1,13,18,23,32,45,50,54,60,71,83,102],[1,16,41,51,66,83],[1,25,55,77,90,105,116,129],[1,11,30,42,51,76,94],[1,11,23,26,34,39,49,58,65,73],[1,23,33,51,78,93],[1,11,21,27,35,41,51,58,62],[1,10,21,35,45,61],[1,10,34,53,70,105,123,141,160,176,192],[1,15,32,45,59,67,83],[1,14,22,29,43,51,61,76],[1,14,23,31,45,52,64],[1,11,20,28,41,54],[1,12,20],[1,12,23],[1,9,21,28,35,41,53,59,69],[1,10,22,31,37,46],[1,8,15,27,38],[1,13,33,51,68],[1,22,75,114,139],[1,15,27,41,65],[1,10,22,32,42,53,64,71],[1,10,21,28,38,51,61,69,79],[1,9,19,26,33,45],[1,10,20,30,44],[1,16,26,36,46,57,68],[1,30,43],[1,12,22,27],[1,11,21,27],[1,12,20,29],[1,11,18,27],[1,11],[1,16,30],[1,24,47],[1,29],[1,26,33],[1,23,41],[1,26,46],[1,39,75],[1,11,20,26],[1,7,14],[1,11,18],[1,7],[1,10],[1,9],[1,9],[1,11],[1,8],[1,8],[1,15],[1,34],[1,38],[1,36],[1,21],[1,20],[1,20],[1,32],[1,31],[1,23],[1,41],[1,31],[1,27],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1],[1]];function A(e){return+z.slice(0,e).reduce((e,n)=>e+n,0)}const Oe=r(115).map(A);function Qe(n){return r(115).find(e=>Oe[e]>=n)}const M=30,S=60,T=240,Ve=6236,E=114,Ge=604,Ye=556;function e1(e){return null==e?e:!!e.match(/^[0-9]+$/)}function n1(e,n){return 2===(e=e.split(n)).length&&e.every(e1)}function t1(e){return""===e||e1(e)||n1(e,"//")||n1(e,"/")}function C(e){var n;return""===e?[null,null]:1===(n=e.split("-")).length&&n.every(t1)?[e,e]:2===n.length&&n.every(t1)?n:[null,null]}function i1(e,n){if(""===n&&(n="114"),e1(e=""===e?"1":e)&&e1(n)&&(e=+e||1,n=+n||E,!(e<1||n<1||e>E||n>E)))return[A(e-1)+1,A(n-1)+z[n-1]]}function a1(n){var e;return n<0||6236n>=A(e)&&nE||+n[1]<1||+n[1]>z[+n[0]-1]))return A(+n[0]-1)+ +n[1]}else if(!(+e>Ve))return+e}function o1(e,n){if(e&&(e=r1(e),n=r1(n),null!=e)&&null!=n)return[+e||1,+n||Ve]}function l1(e,n){return n>L[e-1].length?null:[A(e-1)+L[e-1][n-1],n===L[e-1].length?-1+A(e)+L[e][0]:-1+A(e-1)+L[e-1][n]]}function u1(t){var e;if(t.includes("/"))return 2!==(e=t.split("/")).length||+e[0]>E?null:l1(+e[0],+e[1]);if(!(+t>Ye))for(let n=0;nGe||n>Ge)))return[Ze[+e-1]+1,Ze[+n]]}function d1(e,n){var t;if(null!=e&&(e=+e||1,n=+n||M,!(e>M||n>M)))return t=T/M,[x[((e||1)-1)*t]+1,x[(n||M)*t]]}function h1(e,n,t){if(2===t.length&&!(+t[0]<1||+t[0]>n||+t[1]<0||+t[1]>e))return(+t[0]-1)*e+ +t[1]+1}function f1(e){return e.includes("//")?h1(T/M,M,e.split("//")):e.includes("/")?h1(T/S,S,e.split("/")):+e>T?void 0:+e}function y1(e,n){if(null!=e&&(e=f1(e),n=f1(n),null!=e)&&null!=n)return[x[(e||1)-1]+1,x[n||240]]}function m1(e){return e.includes("/")?h1(S/M,M,e.split("/")):+e>S?void 0:+e}function p1(e,n){if(null!=e){var t,e=m1(e),n=m1(n);if(null!=e&&null!=n)return t=T/S,[x[((e||1)-1)*t]+1,x[(n||60)*t]]}}function g1(e){let i,a,r=0,o=0;return e.slice(1).split("&").map(e=>e.split("=")).forEach((n,e)=>{var t=(...e)=>e.includes(n[0]);t("a")?r=isNaN(+n[1])?r:+n[1]:t("b")?o=isNaN(+n[1])?o:+n[1]:t("p")?[i,a]=s1(...C(n[1]))||[i,a]:t("s")?[i,a]=i1(...C(n[1]))||[i,a]:t("r")?[i,a]=y1(...C(n[1]))||[i,a]:t("h")?[i,a]=p1(...C(n[1]))||[i,a]:t("j")?[i,a]=d1(...C(n[1]))||[i,a]:t("k")?[i,a]=c1(...C(n[1]))||[i,a]:[i,a]=o1(...C(n[0]))||[i,a]}),null==i||null==a?[null,null]:(i-=o,a+=r,i<=0&&(i=1),6236H.frameInterval){w.clearRect(0,0,window.innerWidth,window.innerHeight);var t,i=window.innerWidth,a=window.innerHeight;v+=.01;for(var r=0;ri+20||t.x<-20||t.y>a)&&(y&&g.length<=H.maxCount?b(t,i,a):(g.splice(r,1),r--));for(var o,l,u,c=w,s=0;sh.focus(),500)):(t.hidden=!0,setTimeout(()=>g.focus(),500)),m.hidden||(m.style.height=g.hidden?"calc(100vh - 12rem)":"calc(100vh - 15rem)",m.scroll({top:m.scrollHeight})),!0)}function help_toggled(){setTimeout(Ke,100)}function option_toggled(){}function z1(e,n,t,i){i||(window.location.hash=e.join("/")+"-"+n.join("/")),document.querySelector("title").innerHTML=t+" | رسايت",q("title",t),a.value=e[0]-1,u.value=v(e[1]),c.value=n[0]-1,s.value=v(n[1])}function x1(e,n,t,i){_.init(t,i),_.fill(R1(e[0]-1,e[1],n[0]-1,n[1]))}function L1(e){R=e;var n=!!window.location.search||!!window.location.hash,t=(g.style.display=e.zz?"block":"none",g.hidden=!e.zz,he.hidden=!e.zz,f.hidden=!!e.zz,a1(e.st-1)),i=a1(e.en-1),[a,r]=$e(...t,...i);l.innerHTML=a,l.classList=r,z1(t,i,a,n),x1(t,i,e.qari,e.qariurl,n),e.zz&&parent.zz_show(),S1(e.quizmode);const o=()=>{A1(e)};"imla"===e.quizmode?$1(o):(r=j1(e.st,e.en),a=P1(e.st,e.en),r&&a?D1(()=>{F1(o)}):r?D1(o):a&&F1(o))}function A1(o){if("imla"===o.quizmode){m.focus();let a=I1(o.st,o.en),r=!1;const t=function(){if(p.hidden){r&&(m.value=m.value.replace(/ \u06dd/g," ۝").replace(/[^ \xA0\nء-غف-\u0652٠-٩\u06DD]+/g,"").replace(/ +(\n)/g,"$1").replace(/(\A|\n| )[ \n]+/g,"$1"),r=!1);" "!==(e=m.value.slice(-2))&&"\n"!==e||(m.value="")," "!==e&&"\n "!==e&&"\n\n"!==e||(m.value=m.value.slice(0,-1))," \n"===e&&(m.value=m.value.slice(0,-2)+"\n");var e=m.selectionStart===m.value.length;if(Ce(a,m.value)){if(m.classList="",e){if(" "===(e=m.value.slice(-1))||"\n"===e){var t=e;if(" "!==t&&"\n"!==t)throw"bad last_char in fix_imla_additions";let n=0;var i=m.value.count_char(t);for(let e=0;e{var n;e.altKey||e.ctrlKey||1!==e.key.length||(e.preventDefault(),(n=window.emulate&&Pe[window.emulate]&&Pe[window.emulate][e.code]?Pe[window.emulate][e.code][+e.shiftKey]:e.key).match(/^[ \nء-غف-\u0652]$|^ل[اأإآ]$/)&&(je(m,n),t())),e.composed&&(r=!0)},m.oninput=t,m.onpaste=e=>{r=!0},document.onkeyup=null,document.ondblclick=null}else{y.focus(),_.set_index(o.teacher?0:-1);let r=W1(o.st,o.en,o.cn);const e=function(t){if(0!==r.length){var i="a"===t?e=>"a"!==e:"j"===t?e=>"a"!==e&&"j"!==e:e=>!1;let e,n="";do{var a=r.shift()}while(n+=a,i(e=Me(a.slice(-2))));"a"===e&&(_.next(),_.play()),y.innerHTML+=n,0===r.length&&q1(),ke()}},a=()=>e("w"),l=()=>e("a"),u=()=>e("j"),c=function(e){var n;return 0!==y.innerHTML.length&&p.hidden?(n=y.innerHTML.match(/(?:^|\t|\n)([^\n\t]+(?:\t|\n))$/)[1],r.unshift(n),y.innerHTML=y.innerHTML.substring(0,y.innerHTML.length-n.length),n.match(/\n$/)&&(_.back(),o.teacher)&&_.play(),Me(y.innerHTML.slice(-2))):"a"},s=function(e){do{var n=c()}while("a"!==n)},d=function(e){do{var n=c()}while("a"!==n&&"j"!==n)};document.onkeyup=function(e){var n=e.shiftKey||e.ctrlKey||e.altKey,t=" "===e.key||"Enter"===e.key||"ArrowLeft"===e.key,i="Backspace"===e.key||"ArrowRight"===e.key;"INPUT"!==e.target.nodeName&&"SELECT"!==e.target.nodeName&&"BUTTON"!==e.target.nodeName&&(t?(n?l:a)():i?(n?s:c)():"0"!==e.key||n?"1"!==e.key||n||d():u())},document.ondblclick=e=>{e.target!==y&&e.target!==i("body")||a()},be.onclick=l,we.onclick=u,ve.onclick=a,ge.onclick=c,pe.onclick=d,me.onclick=s}o.teacher&&_.play(0)}function M1(){a.value=u.value=c.value=s.value="",a.oninput=u.oninput=c.oninput=s.oninput=Ae,a.onblur=u.onblur=c.onblur=s.onblur=Ae,a.onkeyup=u.onkeyup=c.onkeyup=s.onkeyup=_1}document.addEventListener("keyup",e=>{"Escape"===e.key&&(_.play(),!m.hidden)&&p.hidden&&m.focus()}),h.onclick=b1,fe.onmouseup=k1,fe.onclick=k1;const S1=function(e){se.hidden=!0,de.hidden=!1,p.hidden=!0,h.hidden=!0,l.style.display="inline-block","imla"===e?(m.style.height="95vh",m.value="",m.disabled=!1,m.classList="",m.hidden=!1,y.hidden=!0,t.hidden=!0,i("end_of_header").style.color="transparent",document.documentElement.style.setProperty("--sticky",""),m.focus()):(y.hidden=!1,y.innerHTML="",t.hidden=!1,m.hidden=!0,i("end_of_header").style.color="",document.documentElement.style.setProperty("--sticky","sticky")),ke()},T1=function(){se.hidden=!1,de.hidden=!0,h.hidden=!1,t.hidden=!0,l.style.display="none",Ae({})},E1=function(){y.innerHTML="",m.hidden=!0,p.hidden=!0},C1=function(){T1(),E1()};function H1(e){return e.replace(/([A-Z])<([^>]+)>/g,'$2')}function R1(e,t,i,a){return r(115).slice(+e+1,+i+2).map(n=>r(+z[n-1]+1).slice(n===+e+1?+t:1,n===+i+1?+a+1:300).map(e=>n.toString().padStart(3,"0")+e.toString().padStart(3,"0"))).reduce((e,n)=>(!n[0].match(/001$/)||n[0].match(/^001/)||n[0].match(/^009/)||n.unshift("001001"),e.push(...n),e),[])}function B1(t,i){JSZipUtils.getBinaryContent("res/"+t+".zip",function(e,n){if(e)throw e;JSZip.loadAsync(n).then(function(e){return e.file(t).async("string")}).then(function(e){i(e.split("\n"))})})}f.onmouseup=C1,f.onclick=C1,g.onclick=()=>{E1(),parent.zz_done()},he.onclick=()=>{E1(),parent.zz_ignore()},onload=function(){h.disabled=!0,M1(),P("input, select").forEach(e=>e.onchange&&e.onchange()),Be(),v1(),m.spellcheck=!1,document.querySelectorAll("details").forEach(n=>{n.addEventListener("toggle",e=>{n.open&&n.scrollIntoView({behavior:"smooth",block:"nearest",inline:"nearest"})})})},visualViewport&&visualViewport.addEventListener("resize",e=>{!m.hidden&&p.hidden&&(m.style.height=Math.trunc(.95*e.target.height)+"px",m.scrollIntoView())}),function(e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):"undefined"!=typeof window?window.JSZipUtils=e():"undefined"!=typeof global?global.JSZipUtils=e():"undefined"!=typeof self&&(self.JSZipUtils=e())}(function(){return function i(a,r,o){function l(n,e){if(!r[n]){if(!a[n]){var t="function"==typeof require&&require;if(!e&&t)return t(n,!0);if(u)return u(n,!0);throw new Error("Cannot find module '"+n+"'")}e=r[n]={exports:{}},a[n][0].call(e.exports,function(e){return l(a[n][1][e]||e)},e,e.exports,i,a,r,o)}return r[n].exports}for(var u="function"==typeof require&&require,e=0;e{w1=e,n()}):n()}const $=2349;function j1(e,n){return e-1<$||n<$}function P1(e,n){return e-1>=$||n>=$}function D1(n){null==B[0]?B1("othm1",e=>{B=[...e,...B.slice($)],n()}):n()}function F1(n){null==B[6e3]?B1("othm2",e=>{B=[...B.slice(0,$-1),...e],n()}):n()}function I1(e,n){return w1.slice(e-1,n).map(e=>e.startsWith("#")?e.replace("#","بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيمِ\n"):e).join("\n")+"\n"}function W1(i,a,r){var e=Oe[Qe(a)];r&&a(n.startsWith("#")&&(e.push(o+"
"),n=n.replace("#","")),r&&t===a-i&&(n=n.replace(/([\u06DC\u06D6\u06D7\u06D8\u06DA\u06DB]) .*/,"$1")),e.push(n),e),[]).map(e=>e.replace(/أ\u064eو\u064e /g,"أَوَ")).map(e=>H1(e)).map(e=>e.replace(/ /g,"\t")+"\n").map(e=>e.replace(/_/g," ")).reduce((e,n)=>(e.push(...n.split("",-1)),e),[])} diff --git a/style.min.css b/style.min.css new file mode 100644 index 0000000..c5f88da --- /dev/null +++ b/style.min.css @@ -0,0 +1 @@ +@font-face{font-family:AmiriQuranWeb;font-style:normal;font-weight:400;src:url('woff/AmiriQuran.woff2') format('woff2'),url('woff/AmiriQuran.woff') format('woff')}@font-face{font-family:AmiriQuranColoredWeb;font-style:normal;font-weight:400;src:url('woff/AmiriQuranColored.woff2') format('woff2'),url('woff/AmiriQuranColored.woff') format('woff')}@font-face{font-family:KacstOne;font-style:normal;font-weight:400;src:url('woff/KacstOne-subset.woff2') format('woff2'),url('woff/KacstOne-subset.woff') format('woff')}@font-face{font-family:Cortoba;font-style:normal;font-weight:400;src:url('woff/ae_Cortoba-subset.woff2') format('woff2'),url('woff/ae_Cortoba-subset.woff') format('woff')}body,html{padding:0;margin:0;overflow:hidden;--all-width:clamp(10rem, 80vw, 35rem)}body{text-align:center}#body{background-color:var(--background);height:100vh;width:100vw;direction:rtl;overflow-y:scroll;overflow-x:hidden;box-sizing:border-box}#all{display:inline-block;width:var(--all-width)}#body{--btn-base-width:min(35vw, 10rem);--faint-btn:#666;--uitext:#233;--txt:#111;--txt-font:AmiriQuranWeb;--background-rgb:249,246,231;--content-rgb:252,250,241;--background:rgb(var(--background-rgb));--background-translucent:rgba(var(--background-rgb), 0.66);--details-bg:white;--details-shadow:black;--title-rgb:0,0,0;--L:#bb6666;--W:red;--J:orangered;--T:#ff9900;--N:#009000;--X:#9595a0;--R:#2222e0;--Q:#00a5e7;--A:darkorange;--D:navy;--A-shadow:1px 1px 1px gold,1px -1px 1px gold,-1px 1px 1px gold,-1px -1px 1px gold,0 0 5px blue;--D-shadow:0 0 10px rgba(0, 0, 255, 0.5);--tab-txt:#000;--tab-active-txt:var(--tab-txt);--tab:gold;--tab-active:yellow}#dark:checked~#body{--faint-btn:#555;--uitext:#ccc;--txt:#eee;--background-rgb:26,20,20;--content-rgb:23,23,23;--details-bg:black;--details-shadow:white;--title-rgb:255,255,255;--L:#bb5555;--W:red;--J:#ff6600;--T:#ffbb00;--N:#00ff00;--X:#808080;--R:#4477ff;--Q:#00d6ff;--A:#ff8c00;--D:#ffffff;--tab-txt:#ddb;--tab-active-txt:white;--tab:#A1761B;--tab-active:darkgoldenrod}#dark:checked~#body.highcontrast{--faint-btn:#333;--uitext:#eee;--txt:#fff;--background-rgb:0,0,0;--content-rgb:23,23,23;--L:#ee8888;--W:#ff4444;--J:#ffaa44;--T:#ffee66;--N:#66ffaa;--X:#aaaaaa;--R:#66bbff;--Q:#22eeff}:not(input,button,select){color:var(--uitext)}#uthm_txt{color:var(--txt)}.L{color:var(--L)}.W{color:var(--W)}.J{color:var(--J)}.T{color:var(--T)}.N{color:var(--N)}.X{color:var(--X)}.R{color:var(--R)}.Q{color:var(--Q)}.A{color:var(--A);text-shadow:var(--A-shadow)}.D{color:var(--D);text-shadow:var(--D-shadow)}#uthm_txt{white-space:pre-line}#uthm_txt.nb{white-space:normal}#uthm_txt>br{display:none}#uthm_txt.nb>br{display:block}.D:after{content:'\200f';margin-right:.35em}#body{scroll-behavior:smooth}::selection{background:rgba(0,0,255,.1)}html{font-size:calc(16px + .5vw)}*{font-family:Cortoba,serif;font-size:inherit}#uthm_txt,#uthm_txt *{font-family:var(--txt-font);font-size:1.5rem}#uthm_txt{text-align:right;padding:0 1em;padding-bottom:4rem}#endmsg{font-size:min(5vw, 2rem);text-align:center;color:var(--uitext);margin:auto;padding-bottom:1rem}#header,#selectors{padding:0;padding-top:.5rem;position:var(--sticky);background-color:var(--background-translucent);top:-4.8rem;margin-top:-5.1rem;padding-top:5.1rem;z-index:2}#title{display:none;margin-top:0;margin-bottom:.5rem;color:rgb(var(--title-rgb));position:relative;z-index:3;font-family:KacstOne;font-size:clamp(.5rem, 3.5vw, 1.25rem)}#title.manymany{font-size:calc(var(--all-width) / 30)}#aaya_bgn,#aaya_end{font-family:KacstOne}#selectors>div label:first-child{display:inline-block;width:4em}#selectors>div{display:inline-block;max-width:15em;min-width:40%;margin:.1rem 0}#aaya_bgn,#aaya_end{width:1.5em}#sura_bgn,#sura_end{width:35%}#options .option{margin-top:.5em}#options .option:first-child{margin-top:1.5em}#options .mode_options_title{display:block;text-align:right;padding-right:2em;margin-top:.3em;font-family:Cortoba;font-weight:400}#guide{display:none}#options{padding:.5em 1em;box-sizing:border-box;width:var(--all-width)}#options *{font-family:KacstOne,serif;font-weight:700;line-height:1.7}.option>*{margin:0}#darkmode_option{width:7em}#teacher_option{width:14em}.option.maybe-inline{display:inline-block;margin:0 1em}#mode_options{padding:0;margin:0}#qaris{width:calc(100% - 6.8em)}#quizmode{width:calc(100% - 7.35em)}#mvbtns_input{width:calc(100% - 9.4em)}#textclr_input{width:calc(100% - 6.45em)}#feedbackrate{width:calc(100% - 9.25em)}#imla_txt{background:var(--background);color:var(--txt)}#imla_txt.done{background:#90ee90}#imla_txt.wrong{background:pink}#dark:checked~#body #imla_txt.done{background:#040}#dark:checked~#body #imla_txt.wrong{background:#441014}#imla_txt{font-size:1.5rem;text-align:right;padding:0 1em;font-family:AmiriQuranWeb;width:min(90%,70vw);margin:auto;margin-bottom:1rem;border-radius:.25rem}button{--width:var(--btn-base-width);width:var(--width);transition:opacity .5s ease-in-out;touch-action:manipulation}#mvbtns button{--width:calc(var(--all-width) / 7.5);margin:0;fill:var(--faint-btn)}#mvbtns #nextword{width:calc(2*var(--width));fill:#000}#mvbtns svg{width:1em;height:1em}button,input,input[type=checkbox]+label,select{cursor:pointer}button:disabled{cursor:not-allowed}#dark:checked~#body button,#dark:checked~#body input,#dark:checked~#body kbd,#dark:checked~#body select{filter:invert(1) hue-rotate(180deg)}body.letter-parts #uthm_txt{--txt-font:AmiriQuranColoredWeb;--L:var(--txt);--W:var(--txt);--J:var(--txt);--T:var(--txt);--N:var(--txt);--X:var(--txt);--R:var(--txt);--Q:var(--txt)}body.letter-nocolor #uthm_txt{--L:var(--txt);--W:var(--txt);--J:var(--txt);--T:var(--txt);--N:var(--txt);--X:var(--txt);--R:var(--txt);--Q:var(--txt)}body.ayat-nocolor #uthm_txt{--A:var(--txt);--A-shadow:none;--D:var(--txt);--D-shadow:none}body.letter-parts:not(.ayat-nocolor) #uthm_txt .A,body.letter-parts:not(.ayat-nocolor) #uthm_txt .D{font-family:AmiriQuranWeb}#dark:checked~#body .help-part{color:#f66}#dark:checked~#body summary::marker{color:#f66}#dark:checked~#body details *{color:#aaf}#dark:checked~#body a{color:#adf}#dark:checked~#body kbd{color:#000}#dark:checked~#body summary{color:#fff}a *{color:inherit!important}.help-part{font-weight:400;color:#c00;font-size:120%}.help-part::after{content:" :."}.help-part::before{content:".: "}details *{font-family:KacstOne;color:#008}summary{color:#000;margin-right:-.2em}details strong{border-bottom:.1em solid}summary::marker{color:#c00}#mvbtns{position:fixed;bottom:1rem;height:2em;right:calc(50vw - var(--all-width)/ 2);margin:0;transition:opacity .1s ease-in-out;z-index:1}@media (max-width:432px){#mvbtns:not(.sidebtns){right:calc(50vw - var(--all-width)/ 1.95)}}@media (max-width:324px){#mvbtns:not(.sidebtns){right:calc(50vw - var(--all-width)/ 1.9)}}#mvbtns.sidebtns{--btn-base-width:min(35vh, 10rem);--all-width:clamp(10rem, 80vh, 35rem);position:fixed;width:100vh;margin:0;top:0;transform-origin:top right;transform:rotate(-90deg);z-index:11}#mvbtns.sidebtns.rightside{right:calc(.25 * var(--btn-base-width))}#mvbtns.sidebtns.leftside{right:calc(100vw - .05 * var(--btn-base-width))}#ok{display:block;margin:1rem auto}#header button{margin:.2rem}#preloader{display:none}#player{display:block;margin-left:-5rem;width:10em;left:50vw;position:fixed;top:0;transition:opacity .5s ease-in-out;opacity:0;visibility:hidden;z-index:30}.help-part{margin-bottom:.4rem}details,details *{margin:0;margin-bottom:.5rem}details>:last-child{margin-bottom:.8rem}.details-content{background-color:var(--details-bg);box-shadow:0 0 .2em 0 var(--details-shadow);width:calc(var(--all-width) - 10%);margin-right:-.1em;padding-top:.4rem;padding-bottom:.2rem;padding-left:5%;padding-right:5%}b{display:block;color:#000;margin:.8rem 0 .2rem 0}a{color:#00f}a:visited{color:purple}a:hover{text-shadow:1pt 1pt 2pt #add8e6}a:active{color:red;text-shadow:1pt 1pt 2pt #add8e6}.tab{display:none}.tab~label{user-select:none}#help{display:flex;flex-direction:column-reverse}#help{margin:0;box-sizing:border-box;width:var(--all-width)}#optiontoggle+label:before{content:"أظهر"}#optiontoggle:checked+label:before{content:"أخفِ"}#helpcontent ul{text-align:right}.tab+label{font-weight:400;--label-gap:0.5rem;--small-width:1rem;--padding:10px;--height:1.3rem;--big-width:calc(var(--all-width) - 4*var(--padding) - var(--label-gap) - var(--small-width));line-height:1.2;padding:var(--padding);height:var(--height);background:var(--tab);color:var(--tab-txt);box-shadow:1px 3px 4px rgba(0,0,0,.3);border-radius:0 0 1rem 1rem;z-index:20;position:relative}#dark:checked~#body .tab+label{box-shadow:1px 3px 4px rgba(255,255,255,.3)}#optiontoggle+label{width:var(--big-width)}#helptoggle+label{width:var(--small-width);right:calc(var(--big-width) + var(--label-gap) + 2*var(--padding));top:calc(-1*var(--height) - 2*var(--padding));margin-bottom:calc(-1*var(--height) - 1*var(--padding))}.contentcontainer{width:calc(var(--all-width) - .2rem);padding:.1rem;padding-bottom:1rem;background:rgb(var(--content-rgb));box-shadow:1px 3px 4px rgba(0,0,0,.3);margin:0;margin-top:-1.1rem;z-index:5}#help summary{padding-left:1rem;padding-right:1rem}#helptoggle:not(checked)~#helpcontent{overflow:hidden;max-height:0;transition:max-height 1s cubic-bezier(0, 1, 0, 1),visibility 1s step-end;visibility:hidden}#helptoggle:checked~#helpcontent{max-height:32766px;transition:max-height 3s ease-in,visibility 3s step-start;visibility:visible}#optiontoggle:not(checked)~#options{overflow:hidden;max-height:0;transition:max-height .55s ease-out,visibility .55s step-end;visibility:hidden}#optiontoggle:checked~#options{max-height:21rem;transition:max-height .5s linear,visibility .5s step-start;visibility:visible}.tab+label:focus,.tab+label:hover{background:var(--tab-active);color:var(--tab-active-txt)}kbd{font-family:serif;direction:ltr;font-size:.7rem;background-color:#e7e7e7;border:1px solid #888;border-radius:.5em;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 2px #fff inset;color:#000;display:inline-block;margin:0 .1em;padding:.1em .6em;text-shadow:0 1px 0 #fff}.roman{font-size:80%}.roman,.roman *{font-family:serif;direction:ltr}summary{outline:0}details[open]>.details-content{animation:fade-in .5s ease-in-out}@keyframes fade-in{0%{opacity:0}100%{opacity:1}}#zzback{display:block;margin:auto;margin-top:.5em}#end_of_header{margin:0;margin-top:.2em} \ No newline at end of file