Add packages/typescript/Quran/
This commit is contained in:
parent
9e6297f316
commit
e8347fa5a5
366 changed files with 2584 additions and 2314 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,5 +1,7 @@
|
||||||
/build/
|
/build/
|
||||||
/tmp/
|
/tmp/
|
||||||
|
/packages/typescript/**/*.js
|
||||||
|
/packages/typescript/**/dist/
|
||||||
/rake/tasks/deploy.rake
|
/rake/tasks/deploy.rake
|
||||||
/.gems/
|
/.gems/
|
||||||
/crash.log
|
/crash.log
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
module Mixin::Inline
|
module Mixin::Inline
|
||||||
def inline_json(path)
|
def inline_json(path, class_name: File.basename(path, File.extname(path)))
|
||||||
class_name = File.basename(path, File.extname(path))
|
|
||||||
"<script class='json #{class_name}' type='application/json'>" \
|
"<script class='json #{class_name}' type='application/json'>" \
|
||||||
"#{items[path].compiled_content}" \
|
"#{items[path].compiled_content}" \
|
||||||
"</script>"
|
"</script>"
|
||||||
|
|
33
package-lock.json
generated
33
package-lock.json
generated
|
@ -3828,6 +3828,10 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"node_modules/Quran": {
|
||||||
|
"resolved": "packages/typescript/Quran",
|
||||||
|
"link": true
|
||||||
|
},
|
||||||
"node_modules/randombytes": {
|
"node_modules/randombytes": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
|
||||||
|
@ -4888,6 +4892,20 @@
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.36.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.36.tgz",
|
||||||
"integrity": "sha512-8egDX8dE50XyXWH6C6PRCNkTP106DuUrvdrednFouDSmCi7IOvrqr0frznfZaHifHH/3aq/7a7v9N4wdXMqhBQ==",
|
"integrity": "sha512-8egDX8dE50XyXWH6C6PRCNkTP106DuUrvdrednFouDSmCi7IOvrqr0frznfZaHifHH/3aq/7a7v9N4wdXMqhBQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
|
},
|
||||||
|
"packages/typescript/Quran": {
|
||||||
|
"version": "0.1.0",
|
||||||
|
"license": "0BSDL",
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/node": "^16.18",
|
||||||
|
"typescript": "^4.5"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"packages/typescript/Quran/node_modules/@types/node": {
|
||||||
|
"version": "16.18.96",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.96.tgz",
|
||||||
|
"integrity": "sha512-84iSqGXoO+Ha16j8pRZ/L90vDMKX04QTYMTfYeE1WrjWaZXuchBehGUZEpNgx7JnmlrIHdnABmpjrQjhCnNldQ==",
|
||||||
|
"dev": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -7508,6 +7526,21 @@
|
||||||
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
|
"integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"Quran": {
|
||||||
|
"version": "file:packages/typescript/Quran",
|
||||||
|
"requires": {
|
||||||
|
"@types/node": "^16.18",
|
||||||
|
"typescript": "^4.5"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@types/node": {
|
||||||
|
"version": "16.18.96",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.96.tgz",
|
||||||
|
"integrity": "sha512-84iSqGXoO+Ha16j8pRZ/L90vDMKX04QTYMTfYeE1WrjWaZXuchBehGUZEpNgx7JnmlrIHdnABmpjrQjhCnNldQ==",
|
||||||
|
"dev": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"randombytes": {
|
"randombytes": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
|
||||||
|
|
21
packages/typescript/Quran/package.json
Normal file
21
packages/typescript/Quran/package.json
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
"name": "Quran",
|
||||||
|
"version": "0.1.0",
|
||||||
|
"description": "The Noble Quran: a programmer's interface",
|
||||||
|
"main": "dist/index.js",
|
||||||
|
"types": ["dist/index.d.ts"],
|
||||||
|
"scripts": {
|
||||||
|
"build": "npm exec tsc",
|
||||||
|
"prepare": "npm run build"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/ReflectsLight/al-quran.reflectslight.io.git"
|
||||||
|
},
|
||||||
|
"author": "0x1eef",
|
||||||
|
"license": "0BSDL",
|
||||||
|
"devDependencies": {
|
||||||
|
"@types/node": "^16.18",
|
||||||
|
"typescript": "^4.5"
|
||||||
|
}
|
||||||
|
}
|
72
packages/typescript/Quran/src/index.ts
Normal file
72
packages/typescript/Quran/src/index.ts
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
type TLocale = "ar" | "en";
|
||||||
|
type TAyat = Ayah<TAyah>[];
|
||||||
|
type TQuran = {
|
||||||
|
locale: TLocale;
|
||||||
|
surahs: Surah<TSurah>[];
|
||||||
|
}
|
||||||
|
type TSurah = {
|
||||||
|
readonly id: number;
|
||||||
|
readonly name: string;
|
||||||
|
readonly numberOfAyah: number;
|
||||||
|
readonly romanized: { name: string; slug: string };
|
||||||
|
readonly utf8: { codepoints: number[] };
|
||||||
|
};
|
||||||
|
type TAyah = {
|
||||||
|
id: number;
|
||||||
|
body: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
class Quran<T extends TQuran> {
|
||||||
|
locale: TLocale;
|
||||||
|
surahs: Surah<TSurah>[];
|
||||||
|
|
||||||
|
constructor(self: T) {
|
||||||
|
this.locale = self.locale;
|
||||||
|
this.surahs = self.surahs;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Surah<T extends TSurah> {
|
||||||
|
readonly id: number;
|
||||||
|
readonly name: string;
|
||||||
|
readonly numberOfAyah: number;
|
||||||
|
readonly romanized: { name: string; slug: string };
|
||||||
|
readonly utf8: { codepoints: number[] };
|
||||||
|
readonly ayat: TAyat
|
||||||
|
|
||||||
|
constructor(self: T) {
|
||||||
|
this.id = self.id;
|
||||||
|
this.name = self.name;
|
||||||
|
this.numberOfAyah = self.numberOfAyah;
|
||||||
|
this.romanized = self.romanized;
|
||||||
|
this.utf8 = self.utf8;
|
||||||
|
this.ayat = [];
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
getName(locale: TLocale): string {
|
||||||
|
if (locale === "ar") {
|
||||||
|
return String.fromCodePoint(...this.utf8.codepoints);
|
||||||
|
} else {
|
||||||
|
return this.name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Ayah<T extends TAyah> {
|
||||||
|
readonly id: number;
|
||||||
|
readonly body: string;
|
||||||
|
ms: number;
|
||||||
|
|
||||||
|
constructor(self: T) {
|
||||||
|
this.id = self.id;
|
||||||
|
this.body = self.body;
|
||||||
|
this.ms = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export {
|
||||||
|
Quran, Surah, Ayah,
|
||||||
|
TQuran, TSurah, TAyah,
|
||||||
|
TAyat, TLocale
|
||||||
|
};
|
15
packages/typescript/Quran/tsconfig.json
Normal file
15
packages/typescript/Quran/tsconfig.json
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"strict": true,
|
||||||
|
"module": "ESNEXT",
|
||||||
|
"target": "ES2020",
|
||||||
|
"esModuleInterop": true,
|
||||||
|
"moduleResolution": "node",
|
||||||
|
|
||||||
|
"baseUrl": "src/",
|
||||||
|
"paths": { "*": ["*"] },
|
||||||
|
|
||||||
|
"outDir": "dist",
|
||||||
|
"declaration": true,
|
||||||
|
}
|
||||||
|
}
|
|
@ -34,7 +34,7 @@
|
||||||
data-surah-id="<%= context.surah.id %>">
|
data-surah-id="<%= context.surah.id %>">
|
||||||
</div>
|
</div>
|
||||||
<%= inline_json("/json/i18n.json") %>
|
<%= inline_json("/json/i18n.json") %>
|
||||||
<%= inline_json("/json/recitations.json") %>
|
<%= inline_json("/json/durations/alafasy/#{context.surah.id}.json", class_name: 'durations') %>
|
||||||
<script src="/js/loaders/surah-stream-loader.js"></script>
|
<script src="/js/loaders/surah-stream-loader.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
import url from "url";
|
import url from "url";
|
||||||
import * as Quran from "~/lib/Quran";
|
import type { Surah, TSurah, Ayah, TAyah } from "Quran";
|
||||||
import React, { useEffect, useMemo, useState } from "react";
|
import React, { useEffect, useMemo, useState } from "react";
|
||||||
import { SoundOnIcon, SoundOffIcon } from "~/components/Icon";
|
import { SoundOnIcon, SoundOffIcon } from "~/components/Icon";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
recitation: Quran.Recitation;
|
surah: Surah<TSurah>;
|
||||||
surah: Quran.Surah;
|
ayah: Ayah<TAyah>;
|
||||||
ayah: Quran.Ayah;
|
|
||||||
onStall?: (e?: Event) => void;
|
onStall?: (e?: Event) => void;
|
||||||
onPlay?: (e?: Event) => void;
|
onPlay?: (e?: Event) => void;
|
||||||
onPlaying?: (e?: Event) => void;
|
onPlaying?: (e?: Event) => void;
|
||||||
|
@ -15,7 +14,6 @@ type Props = {
|
||||||
};
|
};
|
||||||
|
|
||||||
export function AudioControl({
|
export function AudioControl({
|
||||||
recitation,
|
|
||||||
surah,
|
surah,
|
||||||
ayah,
|
ayah,
|
||||||
onPlay = () => null,
|
onPlay = () => null,
|
||||||
|
@ -43,10 +41,15 @@ export function AudioControl({
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
const src = [
|
||||||
|
"https://al-quran.reflectslight.io",
|
||||||
|
"audio",
|
||||||
|
"alafasy",
|
||||||
|
surah.id,
|
||||||
|
`${ayah.id}.mp3`,
|
||||||
|
].join("/");
|
||||||
if (soundOn) {
|
if (soundOn) {
|
||||||
audio.src = [url.format(recitation.url), surah.id, `${ayah.id}.mp3`].join(
|
audio.src = src;
|
||||||
"/",
|
|
||||||
);
|
|
||||||
audio.play();
|
audio.play();
|
||||||
} else {
|
} else {
|
||||||
audio.pause();
|
audio.pause();
|
||||||
|
|
|
@ -2,11 +2,11 @@ import React from "react";
|
||||||
import type { ReactNode } from "react";
|
import type { ReactNode } from "react";
|
||||||
import { ThemeSelect } from "~/components/ThemeSelect";
|
import { ThemeSelect } from "~/components/ThemeSelect";
|
||||||
import { LanguageSelect } from "~/components/LanguageSelect";
|
import { LanguageSelect } from "~/components/LanguageSelect";
|
||||||
import * as Quran from "~/lib/Quran";
|
import type { TLocale } from "Quran";
|
||||||
import { Theme } from "~/hooks/useTheme";
|
import { Theme } from "~/hooks/useTheme";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
locale: Quran.Locale;
|
locale: TLocale;
|
||||||
theme: string;
|
theme: string;
|
||||||
setTheme: (t: Theme) => void;
|
setTheme: (t: Theme) => void;
|
||||||
children: ReactNode;
|
children: ReactNode;
|
||||||
|
|
|
@ -1,21 +1,19 @@
|
||||||
import React, { useEffect, useMemo, useRef } from "react";
|
import React, { useEffect, useMemo, useRef } from "react";
|
||||||
import * as Quran from "~/lib/Quran";
|
import { Surah, Ayah, TAyah, TAyat, TSurah, TLocale } from "Quran";
|
||||||
import { AudioControl } from "~/components/AudioControl";
|
import { AudioControl } from "~/components/AudioControl";
|
||||||
import { formatNumber, TFunction } from "~/lib/i18n";
|
import { formatNumber, TFunction } from "~/lib/i18n";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
recitation: Quran.Recitation;
|
surah: Surah<TSurah>;
|
||||||
surah: Quran.Surah;
|
stream: TAyat;
|
||||||
stream: Quran.Ayat;
|
locale: TLocale;
|
||||||
locale: Quran.Locale;
|
|
||||||
endOfStream: boolean;
|
endOfStream: boolean;
|
||||||
isPaused: boolean;
|
isPaused: boolean;
|
||||||
t: TFunction;
|
t: TFunction;
|
||||||
};
|
};
|
||||||
|
|
||||||
export function Stream({
|
export function Stream({
|
||||||
recitation,
|
|
||||||
surah,
|
surah,
|
||||||
stream,
|
stream,
|
||||||
locale,
|
locale,
|
||||||
|
@ -37,7 +35,7 @@ export function Stream({
|
||||||
)}
|
)}
|
||||||
ref={ref}
|
ref={ref}
|
||||||
>
|
>
|
||||||
{stream.map((ayah: Quran.Ayah) => {
|
{stream.map((ayah: Ayah<TAyah>) => {
|
||||||
return (
|
return (
|
||||||
<li
|
<li
|
||||||
key={ayah.id}
|
key={ayah.id}
|
||||||
|
@ -48,7 +46,6 @@ export function Stream({
|
||||||
>
|
>
|
||||||
{(isPaused || endOfStream) && (
|
{(isPaused || endOfStream) && (
|
||||||
<AudioControl
|
<AudioControl
|
||||||
recitation={recitation}
|
|
||||||
surah={surah}
|
surah={surah}
|
||||||
ayah={ayah}
|
ayah={ayah}
|
||||||
onEnd={turnOffSound => turnOffSound()}
|
onEnd={turnOffSound => turnOffSound()}
|
||||||
|
@ -61,7 +58,7 @@ export function Stream({
|
||||||
{formatNumber(surah.ayat.length, locale)}
|
{formatNumber(surah.ayat.length, locale)}
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
<p className="m-0">{ayah.text}</p>
|
<p className="m-0">{ayah.body}</p>
|
||||||
</li>
|
</li>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { TFunction } from "~/lib/i18n";
|
import { TFunction } from "~/lib/i18n";
|
||||||
import * as Quran from "~/lib/Quran";
|
import type { TLocale, TSurah, Surah } from "Quran";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
t: TFunction;
|
t: TFunction;
|
||||||
locale: Quran.Locale;
|
locale: TLocale;
|
||||||
setIndex: (k: Quran.Surah[]) => void;
|
setIndex: (k: Surah<TSurah>[]) => void;
|
||||||
surahs: Quran.Surah[];
|
surahs: Surah<TSurah>[];
|
||||||
};
|
};
|
||||||
|
|
||||||
export function Filter({ t, locale, setIndex, surahs }: Props) {
|
export function Filter({ t, locale, setIndex, surahs }: Props) {
|
||||||
|
@ -20,7 +20,7 @@ export function Filter({ t, locale, setIndex, surahs }: Props) {
|
||||||
const regexp = new RegExp(value, "i");
|
const regexp = new RegExp(value, "i");
|
||||||
const newIndex = surahs.filter(
|
const newIndex = surahs.filter(
|
||||||
surah =>
|
surah =>
|
||||||
regexp.test(surah.localizedName) || regexp.test(String(surah.id)),
|
regexp.test(surah.getName(locale)) || regexp.test(String(surah.id)),
|
||||||
);
|
);
|
||||||
setIndex(newIndex);
|
setIndex(newIndex);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import React, { useRef, useState, useEffect } from "react";
|
import React, { useRef, useState, useEffect } from "react";
|
||||||
import * as Quran from "~/lib/Quran";
|
import { TLocale, TSurah, Surah } from "Quran";
|
||||||
import { useTheme } from "~/hooks/useTheme";
|
import { useTheme } from "~/hooks/useTheme";
|
||||||
import { formatNumber, TFunction } from "~/lib/i18n";
|
import { formatNumber, TFunction } from "~/lib/i18n";
|
||||||
import { RightArrow } from "~/components/Icon";
|
import { RightArrow } from "~/components/Icon";
|
||||||
|
@ -8,14 +8,14 @@ import { Filter } from "./Filter";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
locale: Quran.Locale;
|
locale: TLocale;
|
||||||
surahs: Quran.Surah[];
|
surahs: Surah<TSurah>[];
|
||||||
t: TFunction;
|
t: TFunction;
|
||||||
};
|
};
|
||||||
|
|
||||||
export function SurahIndex({ locale, surahs, t }: Props) {
|
export function SurahIndex({ locale, surahs, t }: Props) {
|
||||||
const [theme, setTheme] = useTheme();
|
const [theme, setTheme] = useTheme();
|
||||||
const [index, setIndex] = useState<Quran.Surah[]>(surahs);
|
const [index, setIndex] = useState<Surah<TSurah>[]>(surahs);
|
||||||
const ref = useRef<HTMLDivElement>();
|
const ref = useRef<HTMLDivElement>();
|
||||||
const ltr = locale === "en";
|
const ltr = locale === "en";
|
||||||
|
|
||||||
|
@ -46,17 +46,17 @@ export function SurahIndex({ locale, surahs, t }: Props) {
|
||||||
"flex items-center color-primary no-underline",
|
"flex items-center color-primary no-underline",
|
||||||
{ "h-14": ltr, "h-10": !ltr },
|
{ "h-14": ltr, "h-10": !ltr },
|
||||||
)}
|
)}
|
||||||
href={`/${locale}/${surah.slug}/`}
|
href={`/${locale}/${surah.romanized.slug}/`}
|
||||||
>
|
>
|
||||||
<span className="color-secondary font-extrabold w-10 text-center">
|
<span className="color-secondary font-extrabold w-10 text-center">
|
||||||
{formatNumber(surah.id, locale)}
|
{formatNumber(surah.id, locale)}
|
||||||
</span>
|
</span>
|
||||||
<span>{surah.localizedName}</span>
|
<span>{surah.getName(locale)}</span>
|
||||||
{ltr && (
|
{ltr && (
|
||||||
<div className="flex justify-end grow pr-3">
|
<div className="flex justify-end grow pr-3">
|
||||||
<div className="flex flex-col">
|
<div className="flex flex-col">
|
||||||
<span className="transliterated" lang="en">
|
<span className="transliterated" lang="en">
|
||||||
{surah.transliteratedName}
|
{surah.romanized.name}
|
||||||
</span>
|
</span>
|
||||||
<span className="ayat flex justify-end text-sm">
|
<span className="ayat flex justify-end text-sm">
|
||||||
{surah.numberOfAyah} {t(locale, "ayat")}
|
{surah.numberOfAyah} {t(locale, "ayat")}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import React, { useState, useEffect, useRef } from "react";
|
import React, { useState, useEffect, useRef } from "react";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import * as Quran from "~/lib/Quran";
|
import { Surah, TSurah, TAyat, TLocale } from "Quran";
|
||||||
import { useTheme } from "~/hooks/useTheme";
|
import { useTheme } from "~/hooks/useTheme";
|
||||||
import { Timer } from "~/components/Timer";
|
import { Timer } from "~/components/Timer";
|
||||||
import { Stream } from "~/components/Stream";
|
import { Stream } from "~/components/Stream";
|
||||||
|
@ -15,30 +15,18 @@ import {
|
||||||
import { TFunction } from "~/lib/i18n";
|
import { TFunction } from "~/lib/i18n";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
node: HTMLScriptElement;
|
surah: Surah<TSurah>;
|
||||||
recitations: Quran.Recitation[];
|
locale: TLocale;
|
||||||
locale: Quran.Locale;
|
|
||||||
paused: boolean;
|
|
||||||
t: TFunction;
|
t: TFunction;
|
||||||
};
|
};
|
||||||
|
|
||||||
const getTimeSlots = (recitation: Quran.Recitation) => {
|
export function SurahStream({ surah, locale, t }: Props) {
|
||||||
const selector = `script.recitation.time-slots.${recitation.id}`;
|
const [stream, setStream] = useState<TAyat>([]);
|
||||||
const timeSlots: HTMLScriptElement = document.querySelector(selector)!;
|
const [isPaused, setIsPaused] = useState<boolean>(false);
|
||||||
return timeSlots;
|
|
||||||
};
|
|
||||||
|
|
||||||
export function SurahStream({ node, recitations, locale, paused, t }: Props) {
|
|
||||||
const [stream, setStream] = useState<Quran.Ayat>([]);
|
|
||||||
const [isPaused, setIsPaused] = useState<boolean>(paused);
|
|
||||||
const [soundOn, setSoundOn] = useState<boolean>(false);
|
const [soundOn, setSoundOn] = useState<boolean>(false);
|
||||||
const [isStalled, setIsStalled] = useState<boolean>(false);
|
const [isStalled, setIsStalled] = useState<boolean>(false);
|
||||||
const [endOfStream, setEndOfStream] = useState<boolean>(false);
|
const [endOfStream, setEndOfStream] = useState<boolean>(false);
|
||||||
const [theme, setTheme] = useTheme();
|
const [theme, setTheme] = useTheme();
|
||||||
const [recitation] = useState<Quran.Recitation>(recitations[0]);
|
|
||||||
const [surah] = useState<Quran.Surah>(
|
|
||||||
Quran.Surah.fromDOMNode(locale, node, getTimeSlots(recitation)),
|
|
||||||
);
|
|
||||||
const readyToRender = stream.length > 0;
|
const readyToRender = stream.length > 0;
|
||||||
const ayah = stream[stream.length - 1];
|
const ayah = stream[stream.length - 1];
|
||||||
const [ms, setMs] = useState<number | null>(null);
|
const [ms, setMs] = useState<number | null>(null);
|
||||||
|
@ -58,7 +46,7 @@ export function SurahStream({ node, recitations, locale, paused, t }: Props) {
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (ayah) {
|
if (ayah) {
|
||||||
setMs(ayah.readTimeMs);
|
setMs(ayah.ms);
|
||||||
}
|
}
|
||||||
}, [ayah]);
|
}, [ayah]);
|
||||||
|
|
||||||
|
@ -78,7 +66,6 @@ export function SurahStream({ node, recitations, locale, paused, t }: Props) {
|
||||||
)}
|
)}
|
||||||
{readyToRender && (
|
{readyToRender && (
|
||||||
<Stream
|
<Stream
|
||||||
recitation={recitation}
|
|
||||||
surah={surah}
|
surah={surah}
|
||||||
stream={stream}
|
stream={stream}
|
||||||
locale={locale}
|
locale={locale}
|
||||||
|
@ -97,7 +84,6 @@ export function SurahStream({ node, recitations, locale, paused, t }: Props) {
|
||||||
{readyToRender && !endOfStream && (
|
{readyToRender && !endOfStream && (
|
||||||
<div className="sound-box flex w-14 justify-end">
|
<div className="sound-box flex w-14 justify-end">
|
||||||
<AudioControl
|
<AudioControl
|
||||||
recitation={recitation}
|
|
||||||
surah={surah}
|
surah={surah}
|
||||||
ayah={ayah}
|
ayah={ayah}
|
||||||
onPlay={() => setSoundOn(true)}
|
onPlay={() => setSoundOn(true)}
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
import React, { useEffect } from "react";
|
import React, { useEffect } from "react";
|
||||||
import * as Quran from "~/lib/Quran";
|
import { Surah, TSurah, TLocale, TAyat } from "Quran";
|
||||||
import { formatNumber } from "~/lib/i18n";
|
import { formatNumber } from "~/lib/i18n";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
surah: Quran.Surah;
|
surah: Surah<TSurah>;
|
||||||
locale: Quran.Locale;
|
locale: TLocale;
|
||||||
stream: Quran.Ayat;
|
stream: TAyat;
|
||||||
soundOn: boolean;
|
soundOn: boolean;
|
||||||
setStream: (stream: Quran.Ayat) => void;
|
setStream: (stream: TAyat) => void;
|
||||||
setEndOfStream: (v: boolean) => void;
|
setEndOfStream: (v: boolean) => void;
|
||||||
ms: number | null;
|
ms: number | null;
|
||||||
setMs: (n: number) => void;
|
setMs: (n: number) => void;
|
||||||
|
@ -31,12 +31,12 @@ export function Timer({
|
||||||
const lastAyah = surah.ayat[surah.ayat.length - 1];
|
const lastAyah = surah.ayat[surah.ayat.length - 1];
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setMs(ayah.readTimeMs);
|
setMs(ayah.ms);
|
||||||
}, [ayah.id]);
|
}, [ayah.id]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!soundOn) return;
|
if (!soundOn) return;
|
||||||
setMs(ayah.readTimeMs);
|
setMs(ayah.ms);
|
||||||
}, [soundOn]);
|
}, [soundOn]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
import * as JSON from "~/lib/Quran/JSON";
|
|
||||||
import { Ayah } from "~/lib/Quran/Ayah";
|
|
||||||
import { Surah } from "~/lib/Quran/Surah";
|
|
||||||
|
|
||||||
type Locale = "ar" | "en";
|
|
||||||
type Ayat = Ayah[];
|
|
||||||
type Recitation = {
|
|
||||||
id: string;
|
|
||||||
author: {
|
|
||||||
name: string;
|
|
||||||
nationality: string;
|
|
||||||
};
|
|
||||||
url: {
|
|
||||||
protocol: string;
|
|
||||||
hostname: string;
|
|
||||||
pathname: string;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
export { Surah, Ayah, Ayat, Recitation, Locale, JSON };
|
|
|
@ -1,19 +0,0 @@
|
||||||
import * as Quran from "~/lib/Quran";
|
|
||||||
|
|
||||||
export type Ayah = {
|
|
||||||
id: number;
|
|
||||||
text: string;
|
|
||||||
readTimeMs: number;
|
|
||||||
};
|
|
||||||
|
|
||||||
export function Ayah(ayah: Quran.JSON.Ayah): Ayah {
|
|
||||||
const self = Object.create(null);
|
|
||||||
self.id = ayah[0];
|
|
||||||
self.text = ayah[1];
|
|
||||||
self.readTimeMs = 0;
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
Ayah.fromJSON = (ayah: Quran.JSON.Ayah): Ayah => {
|
|
||||||
return Ayah(ayah);
|
|
||||||
};
|
|
|
@ -1,12 +0,0 @@
|
||||||
type Surah = {
|
|
||||||
id: string;
|
|
||||||
place_of_revelation: string;
|
|
||||||
transliterated_name: string;
|
|
||||||
translated_name: string;
|
|
||||||
ayahs: number;
|
|
||||||
slug: string;
|
|
||||||
codepoints: number[];
|
|
||||||
};
|
|
||||||
type Ayah = [number, string];
|
|
||||||
type Ayat = Ayah[];
|
|
||||||
export { Surah, Ayah, Ayat };
|
|
|
@ -1,72 +0,0 @@
|
||||||
import * as Quran from "~/lib/Quran";
|
|
||||||
|
|
||||||
type TimeSlot = [number, number];
|
|
||||||
type TimeSlots = [TimeSlot];
|
|
||||||
|
|
||||||
export class Surah {
|
|
||||||
locale: Quran.Locale;
|
|
||||||
ayat: Quran.Ayat;
|
|
||||||
#surah: Quran.JSON.Surah;
|
|
||||||
|
|
||||||
static fromDOMNode(
|
|
||||||
locale: Quran.Locale,
|
|
||||||
node: HTMLScriptElement,
|
|
||||||
timeNode: HTMLScriptElement,
|
|
||||||
) {
|
|
||||||
const json = JSON.parse(node.innerText);
|
|
||||||
const timeSlots: TimeSlots = JSON.parse(timeNode.innerText);
|
|
||||||
const surah = Surah.fromJSON(locale, json.shift(), json);
|
|
||||||
surah.ayat.map((ayah, i) => (ayah.readTimeMs = timeSlots[i][1] * 1000));
|
|
||||||
return surah;
|
|
||||||
}
|
|
||||||
|
|
||||||
static fromJSON(
|
|
||||||
locale: Quran.Locale,
|
|
||||||
surah: Quran.JSON.Surah,
|
|
||||||
ayat: Quran.JSON.Ayat = [],
|
|
||||||
) {
|
|
||||||
return new Surah(locale, surah, this.mapFromJSON(ayat));
|
|
||||||
}
|
|
||||||
|
|
||||||
static mapFromJSON(ayat: Quran.JSON.Ayat) {
|
|
||||||
return ayat.map(ayah => Quran.Ayah.fromJSON(ayah));
|
|
||||||
}
|
|
||||||
|
|
||||||
constructor(locale: Quran.Locale, surah: Quran.JSON.Surah, ayat: Quran.Ayat) {
|
|
||||||
this.locale = locale;
|
|
||||||
this.ayat = ayat;
|
|
||||||
this.#surah = surah;
|
|
||||||
}
|
|
||||||
|
|
||||||
get id(): number {
|
|
||||||
return Number(this.#surah.id);
|
|
||||||
}
|
|
||||||
|
|
||||||
get name() {
|
|
||||||
return String.fromCodePoint(...this.#surah.codepoints);
|
|
||||||
}
|
|
||||||
|
|
||||||
get transliteratedName() {
|
|
||||||
return this.#surah.transliterated_name;
|
|
||||||
}
|
|
||||||
|
|
||||||
get localizedName() {
|
|
||||||
if (this.locale === "ar") {
|
|
||||||
return this.name;
|
|
||||||
} else {
|
|
||||||
return this.#surah.translated_name;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
get placeOfRevelation() {
|
|
||||||
return this.#surah.place_of_revelation;
|
|
||||||
}
|
|
||||||
|
|
||||||
get numberOfAyah() {
|
|
||||||
return this.#surah.ayahs;
|
|
||||||
}
|
|
||||||
|
|
||||||
get slug() {
|
|
||||||
return this.#surah.slug;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,14 +1,14 @@
|
||||||
import * as Quran from "~/lib/Quran";
|
import type { TLocale } from "Quran";
|
||||||
|
|
||||||
type PhraseMap<T> = {
|
type PhraseMap<T> = {
|
||||||
[key: string]: undefined | string | PhraseMap<T>;
|
[key: string]: undefined | string | PhraseMap<T>;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type TFunction = (locale: Quran.Locale, key: string) => string;
|
export type TFunction = (locale: TLocale, key: string) => string;
|
||||||
|
|
||||||
export function i18n(json: string): TFunction {
|
export function i18n(json: string): TFunction {
|
||||||
const phrases: PhraseMap<string> = JSON.parse(json);
|
const phrases: PhraseMap<string> = JSON.parse(json);
|
||||||
return function (locale: Quran.Locale, key: string) {
|
return function (locale: TLocale, key: string) {
|
||||||
const path = key.split(".");
|
const path = key.split(".");
|
||||||
const phrase = path.reduce(
|
const phrase = path.reduce(
|
||||||
(o, k) => (typeof o === "object" ? o[k] : o),
|
(o, k) => (typeof o === "object" ? o[k] : o),
|
||||||
|
@ -18,7 +18,7 @@ export function i18n(json: string): TFunction {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
export function formatNumber(number: number, locale: Quran.Locale): string {
|
export function formatNumber(number: number, locale: TLocale): string {
|
||||||
const numLocale = locale === "ar" ? "ar-SA" : locale;
|
const numLocale = locale === "ar" ? "ar-SA" : locale;
|
||||||
const options = { maximumFractionDigits: 1 };
|
const options = { maximumFractionDigits: 1 };
|
||||||
return new Intl.NumberFormat(numLocale, options).format(number);
|
return new Intl.NumberFormat(numLocale, options).format(number);
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
import postman, { item } from "postman";
|
import postman, { item } from "postman";
|
||||||
import * as Quran from "~/lib/Quran";
|
|
||||||
|
|
||||||
(function () {
|
(function () {
|
||||||
const parent: HTMLElement = document.querySelector(".postman.loader")!;
|
const parent: HTMLElement = document.querySelector(".postman.loader")!;
|
||||||
|
@ -8,9 +7,6 @@ import * as Quran from "~/lib/Quran";
|
||||||
const inlineStyle: HTMLStyleElement = document.querySelector(".css.postman")!;
|
const inlineStyle: HTMLStyleElement = document.querySelector(".css.postman")!;
|
||||||
const { locale, surahId } =
|
const { locale, surahId } =
|
||||||
document.querySelector<HTMLElement>(".root")!.dataset;
|
document.querySelector<HTMLElement>(".root")!.dataset;
|
||||||
const recitations = JSON.parse(
|
|
||||||
document.querySelector<HTMLElement>(".json.recitations")!.innerText,
|
|
||||||
);
|
|
||||||
|
|
||||||
postman(
|
postman(
|
||||||
item.script("/js/main/surah-stream.js"),
|
item.script("/js/main/surah-stream.js"),
|
||||||
|
@ -18,17 +14,6 @@ import * as Quran from "~/lib/Quran";
|
||||||
item.font("Kanit Regular", "url(/fonts/kanit-regular.ttf)"),
|
item.font("Kanit Regular", "url(/fonts/kanit-regular.ttf)"),
|
||||||
item.font("Mada Regular", "url(/fonts/mada-regular.ttf"),
|
item.font("Mada Regular", "url(/fonts/mada-regular.ttf"),
|
||||||
item.json(`/json/${locale}/${surahId}/surah.json`, { className: "surah" }),
|
item.json(`/json/${locale}/${surahId}/surah.json`, { className: "surah" }),
|
||||||
...recitations.map((recitation: Quran.Recitation) => {
|
|
||||||
const path = [
|
|
||||||
"/json",
|
|
||||||
"/durations",
|
|
||||||
`${recitation.id}`,
|
|
||||||
`${surahId}.json`,
|
|
||||||
].join("/");
|
|
||||||
return item.json(path, {
|
|
||||||
className: `recitation time-slots ${recitation.id}`,
|
|
||||||
});
|
|
||||||
}),
|
|
||||||
item.progress((percent: number) => {
|
item.progress((percent: number) => {
|
||||||
progressBar.value = percent;
|
progressBar.value = percent;
|
||||||
progressNumber.innerText = `${percent.toFixed(0)}%`;
|
progressNumber.innerText = `${percent.toFixed(0)}%`;
|
||||||
|
|
|
@ -1,20 +1,16 @@
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import ReactDOM from "react-dom/client";
|
import ReactDOM from "react-dom/client";
|
||||||
import * as Quran from "~/lib/Quran";
|
import { Surah, TSurah, TLocale } from "Quran";
|
||||||
import { i18n } from "~/lib/i18n";
|
import { i18n } from "~/lib/i18n";
|
||||||
import { SurahIndex } from "~/components/SurahIndex";
|
import { SurahIndex } from "~/components/SurahIndex";
|
||||||
|
|
||||||
(function () {
|
(function () {
|
||||||
const root: HTMLElement = document.querySelector(".root")!;
|
const root: HTMLElement = document.querySelector(".root")!;
|
||||||
const locale = root.getAttribute("data-locale") as Quran.Locale;
|
const locale = root.getAttribute("data-locale") as TLocale;
|
||||||
const script: HTMLScriptElement = document.querySelector(".json.surahs")!;
|
const script: HTMLScriptElement = document.querySelector(".json.surahs")!;
|
||||||
|
const blob = JSON.parse(script.innerText);
|
||||||
|
const surahs: Surah<TSurah>[] = blob.map((el: TSurah) => new Surah(el));
|
||||||
const t = i18n(document.querySelector<HTMLElement>(".json.i18n")!.innerText);
|
const t = i18n(document.querySelector<HTMLElement>(".json.i18n")!.innerText);
|
||||||
const surahs: Quran.Surah[] = JSON.parse(script.innerText).map(
|
|
||||||
(el: Quran.JSON.Surah) => {
|
|
||||||
return Quran.Surah.fromJSON(locale, el);
|
|
||||||
},
|
|
||||||
);
|
|
||||||
|
|
||||||
ReactDOM.createRoot(root).render(
|
ReactDOM.createRoot(root).render(
|
||||||
<SurahIndex locale={locale} surahs={surahs} t={t} />,
|
<SurahIndex locale={locale} surahs={surahs} t={t} />,
|
||||||
);
|
);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import * as Quran from "~/lib/Quran";
|
import { Surah, Ayah, TSurah, TLocale } from "Quran";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import ReactDOM from "react-dom/client";
|
import ReactDOM from "react-dom/client";
|
||||||
import { i18n } from "~/lib/i18n";
|
import { i18n } from "~/lib/i18n";
|
||||||
|
@ -6,24 +6,28 @@ import { SurahStream } from "~/components/SurahStream";
|
||||||
|
|
||||||
(function () {
|
(function () {
|
||||||
const root: HTMLElement = document.querySelector(".root")!;
|
const root: HTMLElement = document.querySelector(".root")!;
|
||||||
const locale = root.getAttribute("data-locale") as Quran.Locale;
|
const locale = root.getAttribute("data-locale") as TLocale;
|
||||||
const node: HTMLScriptElement = document.querySelector("script.surah")!;
|
|
||||||
const toBoolean = (str: string | null): boolean =>
|
|
||||||
str !== null && ["1", "t", "true", "yes"].includes(str);
|
|
||||||
const params = new URLSearchParams(location.search);
|
|
||||||
const paused = toBoolean(params.get("paused"));
|
|
||||||
const recitations = JSON.parse(
|
|
||||||
document.querySelector<HTMLElement>(".json.recitations")!.innerText,
|
|
||||||
);
|
|
||||||
const t = i18n(document.querySelector<HTMLElement>(".json.i18n")!.innerText);
|
const t = i18n(document.querySelector<HTMLElement>(".json.i18n")!.innerText);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Configure an instance of Surah
|
||||||
|
*/
|
||||||
|
const node1: HTMLScriptElement = document.querySelector("script.surah")!;
|
||||||
|
const node2: HTMLScriptElement = document.querySelector(".json.durations")!;
|
||||||
|
const blob1: [TSurah, [number, string]] = JSON.parse(node1.innerText)!;
|
||||||
|
const blob2: Array<[number, number]> = JSON.parse(node2.innerText)!;
|
||||||
|
const surah = new Surah(blob1[0]);
|
||||||
|
for (let i = 1; i < blob1.length; i++) {
|
||||||
|
const [id, body] = blob1[i] as [number, string];
|
||||||
|
surah.ayat.push(new Ayah({ id, body }));
|
||||||
|
}
|
||||||
|
for (let i = 0; i < surah.ayat.length; i++) {
|
||||||
|
const ayah = surah.ayat[i];
|
||||||
|
const [_, ms] = blob2[i];
|
||||||
|
ayah.ms = ms * 1000;
|
||||||
|
}
|
||||||
|
|
||||||
ReactDOM.createRoot(root).render(
|
ReactDOM.createRoot(root).render(
|
||||||
<SurahStream
|
<SurahStream surah={surah} locale={locale} t={t} />,
|
||||||
recitations={recitations}
|
|
||||||
node={node}
|
|
||||||
locale={locale}
|
|
||||||
paused={paused}
|
|
||||||
t={t}
|
|
||||||
/>,
|
|
||||||
);
|
);
|
||||||
})();
|
})();
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
[{"id":"1","place_of_revelation":"makkah","transliterated_name":"Al-Fatihah","translated_name":"The Opener","verse_count":7,"slug":"al-fatihah","codepoints":[1575,1604,1601,1575,1578,1581,1577]},[1,"بِسْمِ اللَّهِ الرَّحْمَـٰنِ الرَّحِيمِ"],[2,"الْحَمْدُ لِلَّهِ رَبِّ الْعَالَمِينَ"],[3,"الرَّحْمَـٰنِ الرَّحِيمِ"],[4,"مَالِكِ يَوْمِ الدِّينِ"],[5,"إِيَّاكَ نَعْبُدُ وَإِيَّاكَ نَسْتَعِينُ"],[6,"اهْدِنَا الصِّرَاطَ الْمُسْتَقِيمَ"],[7,"صِرَاطَ الَّذِينَ أَنْعَمْتَ عَلَيْهِمْ غَيْرِ الْمَغْضُوبِ عَلَيْهِمْ وَلَا الضَّالِّينَ"]]
|
[{"id":1,"name":"The Opener","numberOfAyah":7,"romanized":{"name":"Al-Fatihah","slug":"al-fatihah"},"utf8":{"codepoints":[1575,1604,1601,1575,1578,1581,1577]}},[1,"بِسْمِ اللَّهِ الرَّحْمَـٰنِ الرَّحِيمِ"],[2,"الْحَمْدُ لِلَّهِ رَبِّ الْعَالَمِينَ"],[3,"الرَّحْمَـٰنِ الرَّحِيمِ"],[4,"مَالِكِ يَوْمِ الدِّينِ"],[5,"إِيَّاكَ نَعْبُدُ وَإِيَّاكَ نَسْتَعِينُ"],[6,"اهْدِنَا الصِّرَاطَ الْمُسْتَقِيمَ"],[7,"صِرَاطَ الَّذِينَ أَنْعَمْتَ عَلَيْهِمْ غَيْرِ الْمَغْضُوبِ عَلَيْهِمْ وَلَا الضَّالِّينَ"]]
|
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
[{"id":"100","place_of_revelation":"makkah","transliterated_name":"Al-'Adiyat","translated_name":"The Courser","verse_count":11,"slug":"al-adiyat","codepoints":[1575,1604,1593,1575,1583,1610,1575,1578]},[1,"وَالْعَادِيَاتِ ضَبْحًا"],[2,"فَالْمُورِيَاتِ قَدْحًا"],[3,"فَالْمُغِيرَاتِ صُبْحًا"],[4,"فَأَثَرْنَ بِهِ نَقْعًا"],[5,"فَوَسَطْنَ بِهِ جَمْعًا"],[6,"إِنَّ الْإِنسَانَ لِرَبِّهِ لَكَنُودٌ"],[7,"وَإِنَّهُ عَلَىٰ ذَٰلِكَ لَشَهِيدٌ"],[8,"وَإِنَّهُ لِحُبِّ الْخَيْرِ لَشَدِيدٌ"],[9," ۞ أَفَلَا يَعْلَمُ إِذَا بُعْثِرَ مَا فِي الْقُبُورِ"],[10,"وَحُصِّلَ مَا فِي الصُّدُورِ"],[11,"إِنَّ رَبَّهُم بِهِمْ يَوْمَئِذٍ لَّخَبِيرٌ"]]
|
[{"id":100,"name":"The Courser","numberOfAyah":11,"romanized":{"name":"Al-'Adiyat","slug":"al-adiyat"},"utf8":{"codepoints":[1575,1604,1593,1575,1583,1610,1575,1578]}},[1,"وَالْعَادِيَاتِ ضَبْحًا"],[2,"فَالْمُورِيَاتِ قَدْحًا"],[3,"فَالْمُغِيرَاتِ صُبْحًا"],[4,"فَأَثَرْنَ بِهِ نَقْعًا"],[5,"فَوَسَطْنَ بِهِ جَمْعًا"],[6,"إِنَّ الْإِنسَانَ لِرَبِّهِ لَكَنُودٌ"],[7,"وَإِنَّهُ عَلَىٰ ذَٰلِكَ لَشَهِيدٌ"],[8,"وَإِنَّهُ لِحُبِّ الْخَيْرِ لَشَدِيدٌ"],[9," ۞ أَفَلَا يَعْلَمُ إِذَا بُعْثِرَ مَا فِي الْقُبُورِ"],[10,"وَحُصِّلَ مَا فِي الصُّدُورِ"],[11,"إِنَّ رَبَّهُم بِهِمْ يَوْمَئِذٍ لَّخَبِيرٌ"]]
|
|
@ -1 +1 @@
|
||||||
[{"id":"101","place_of_revelation":"makkah","transliterated_name":"Al-Qari'ah","translated_name":"The Calamity","verse_count":11,"slug":"al-qariah","codepoints":[1575,1604,1602,1575,1585,1593,1577]},[1,"الْقَارِعَةُ"],[2,"مَا الْقَارِعَةُ"],[3,"وَمَا أَدْرَاكَ مَا الْقَارِعَةُ"],[4,"يَوْمَ يَكُونُ النَّاسُ كَالْفَرَاشِ الْمَبْثُوثِ"],[5,"وَتَكُونُ الْجِبَالُ كَالْعِهْنِ الْمَنفُوشِ"],[6,"فَأَمَّا مَن ثَقُلَتْ مَوَازِينُهُ"],[7,"فَهُوَ فِي عِيشَةٍ رَّاضِيَةٍ"],[8,"وَأَمَّا مَنْ خَفَّتْ مَوَازِينُهُ"],[9,"فَأُمُّهُ هَاوِيَةٌ"],[10,"وَمَا أَدْرَاكَ مَا هِيَهْ"],[11,"نَارٌ حَامِيَةٌ"]]
|
[{"id":101,"name":"The Calamity","numberOfAyah":11,"romanized":{"name":"Al-Qari'ah","slug":"al-qariah"},"utf8":{"codepoints":[1575,1604,1602,1575,1585,1593,1577]}},[1,"الْقَارِعَةُ"],[2,"مَا الْقَارِعَةُ"],[3,"وَمَا أَدْرَاكَ مَا الْقَارِعَةُ"],[4,"يَوْمَ يَكُونُ النَّاسُ كَالْفَرَاشِ الْمَبْثُوثِ"],[5,"وَتَكُونُ الْجِبَالُ كَالْعِهْنِ الْمَنفُوشِ"],[6,"فَأَمَّا مَن ثَقُلَتْ مَوَازِينُهُ"],[7,"فَهُوَ فِي عِيشَةٍ رَّاضِيَةٍ"],[8,"وَأَمَّا مَنْ خَفَّتْ مَوَازِينُهُ"],[9,"فَأُمُّهُ هَاوِيَةٌ"],[10,"وَمَا أَدْرَاكَ مَا هِيَهْ"],[11,"نَارٌ حَامِيَةٌ"]]
|
|
@ -1 +1 @@
|
||||||
[{"id":"102","place_of_revelation":"makkah","transliterated_name":"At-Takathur","translated_name":"The Rivalry in world increase","verse_count":8,"slug":"at-takathur","codepoints":[1575,1604,1578,1603,1575,1579,1585]},[1,"أَلْهَاكُمُ التَّكَاثُرُ"],[2,"حَتَّىٰ زُرْتُمُ الْمَقَابِرَ"],[3,"كَلَّا سَوْفَ تَعْلَمُونَ"],[4,"ثُمَّ كَلَّا سَوْفَ تَعْلَمُونَ"],[5,"كَلَّا لَوْ تَعْلَمُونَ عِلْمَ الْيَقِينِ"],[6,"لَتَرَوُنَّ الْجَحِيمَ"],[7,"ثُمَّ لَتَرَوُنَّهَا عَيْنَ الْيَقِينِ"],[8,"ثُمَّ لَتُسْأَلُنَّ يَوْمَئِذٍ عَنِ النَّعِيمِ"]]
|
[{"id":102,"name":"The Rivalry in world increase","numberOfAyah":8,"romanized":{"name":"At-Takathur","slug":"at-takathur"},"utf8":{"codepoints":[1575,1604,1578,1603,1575,1579,1585]}},[1,"أَلْهَاكُمُ التَّكَاثُرُ"],[2,"حَتَّىٰ زُرْتُمُ الْمَقَابِرَ"],[3,"كَلَّا سَوْفَ تَعْلَمُونَ"],[4,"ثُمَّ كَلَّا سَوْفَ تَعْلَمُونَ"],[5,"كَلَّا لَوْ تَعْلَمُونَ عِلْمَ الْيَقِينِ"],[6,"لَتَرَوُنَّ الْجَحِيمَ"],[7,"ثُمَّ لَتَرَوُنَّهَا عَيْنَ الْيَقِينِ"],[8,"ثُمَّ لَتُسْأَلُنَّ يَوْمَئِذٍ عَنِ النَّعِيمِ"]]
|
|
@ -1 +1 @@
|
||||||
[{"id":"103","place_of_revelation":"makkah","transliterated_name":"Al-'Asr","translated_name":"The Declining Day","verse_count":3,"slug":"al-asr","codepoints":[1575,1604,1593,1589,1585]},[1,"وَالْعَصْرِ"],[2,"إِنَّ الْإِنسَانَ لَفِي خُسْرٍ"],[3,"إِلَّا الَّذِينَ آمَنُوا وَعَمِلُوا الصَّالِحَاتِ وَتَوَاصَوْا بِالْحَقِّ وَتَوَاصَوْا بِالصَّبْرِ"]]
|
[{"id":103,"name":"The Declining Day","numberOfAyah":3,"romanized":{"name":"Al-'Asr","slug":"al-asr"},"utf8":{"codepoints":[1575,1604,1593,1589,1585]}},[1,"وَالْعَصْرِ"],[2,"إِنَّ الْإِنسَانَ لَفِي خُسْرٍ"],[3,"إِلَّا الَّذِينَ آمَنُوا وَعَمِلُوا الصَّالِحَاتِ وَتَوَاصَوْا بِالْحَقِّ وَتَوَاصَوْا بِالصَّبْرِ"]]
|
|
@ -1 +1 @@
|
||||||
[{"id":"104","place_of_revelation":"makkah","transliterated_name":"Al-Humazah","translated_name":"The Traducer","verse_count":9,"slug":"al-humazah","codepoints":[1575,1604,1607,1605,1586,1577]},[1,"وَيْلٌ لِّكُلِّ هُمَزَةٍ لُّمَزَةٍ"],[2,"الَّذِي جَمَعَ مَالًا وَعَدَّدَهُ"],[3,"يَحْسَبُ أَنَّ مَالَهُ أَخْلَدَهُ"],[4,"كَلَّا ۖ لَيُنبَذَنَّ فِي الْحُطَمَةِ"],[5,"وَمَا أَدْرَاكَ مَا الْحُطَمَةُ"],[6,"نَارُ اللَّهِ الْمُوقَدَةُ"],[7,"الَّتِي تَطَّلِعُ عَلَى الْأَفْئِدَةِ"],[8,"إِنَّهَا عَلَيْهِم مُّؤْصَدَةٌ"],[9,"فِي عَمَدٍ مُّمَدَّدَةٍ"]]
|
[{"id":104,"name":"The Traducer","numberOfAyah":9,"romanized":{"name":"Al-Humazah","slug":"al-humazah"},"utf8":{"codepoints":[1575,1604,1607,1605,1586,1577]}},[1,"وَيْلٌ لِّكُلِّ هُمَزَةٍ لُّمَزَةٍ"],[2,"الَّذِي جَمَعَ مَالًا وَعَدَّدَهُ"],[3,"يَحْسَبُ أَنَّ مَالَهُ أَخْلَدَهُ"],[4,"كَلَّا ۖ لَيُنبَذَنَّ فِي الْحُطَمَةِ"],[5,"وَمَا أَدْرَاكَ مَا الْحُطَمَةُ"],[6,"نَارُ اللَّهِ الْمُوقَدَةُ"],[7,"الَّتِي تَطَّلِعُ عَلَى الْأَفْئِدَةِ"],[8,"إِنَّهَا عَلَيْهِم مُّؤْصَدَةٌ"],[9,"فِي عَمَدٍ مُّمَدَّدَةٍ"]]
|
|
@ -1 +1 @@
|
||||||
[{"id":"105","place_of_revelation":"makkah","transliterated_name":"Al-Fil","translated_name":"The Elephant","verse_count":5,"slug":"al-fil","codepoints":[1575,1604,1601,1610,1604]},[1,"أَلَمْ تَرَ كَيْفَ فَعَلَ رَبُّكَ بِأَصْحَابِ الْفِيلِ"],[2,"أَلَمْ يَجْعَلْ كَيْدَهُمْ فِي تَضْلِيلٍ"],[3,"وَأَرْسَلَ عَلَيْهِمْ طَيْرًا أَبَابِيلَ"],[4,"تَرْمِيهِم بِحِجَارَةٍ مِّن سِجِّيلٍ"],[5,"فَجَعَلَهُمْ كَعَصْفٍ مَّأْكُولٍ"]]
|
[{"id":105,"name":"The Elephant","numberOfAyah":5,"romanized":{"name":"Al-Fil","slug":"al-fil"},"utf8":{"codepoints":[1575,1604,1601,1610,1604]}},[1,"أَلَمْ تَرَ كَيْفَ فَعَلَ رَبُّكَ بِأَصْحَابِ الْفِيلِ"],[2,"أَلَمْ يَجْعَلْ كَيْدَهُمْ فِي تَضْلِيلٍ"],[3,"وَأَرْسَلَ عَلَيْهِمْ طَيْرًا أَبَابِيلَ"],[4,"تَرْمِيهِم بِحِجَارَةٍ مِّن سِجِّيلٍ"],[5,"فَجَعَلَهُمْ كَعَصْفٍ مَّأْكُولٍ"]]
|
|
@ -1 +1 @@
|
||||||
[{"id":"106","place_of_revelation":"makkah","transliterated_name":"Quraysh","translated_name":"Quraysh","verse_count":4,"slug":"quraysh","codepoints":[1602,1585,1610,1588]},[1,"لِإِيلَافِ قُرَيْشٍ"],[2,"إِيلَافِهِمْ رِحْلَةَ الشِّتَاءِ وَالصَّيْفِ"],[3,"فَلْيَعْبُدُوا رَبَّ هَـٰذَا الْبَيْتِ"],[4,"الَّذِي أَطْعَمَهُم مِّن جُوعٍ وَآمَنَهُم مِّنْ خَوْفٍ"]]
|
[{"id":106,"name":"Quraysh","numberOfAyah":4,"romanized":{"name":"Quraysh","slug":"quraysh"},"utf8":{"codepoints":[1602,1585,1610,1588]}},[1,"لِإِيلَافِ قُرَيْشٍ"],[2,"إِيلَافِهِمْ رِحْلَةَ الشِّتَاءِ وَالصَّيْفِ"],[3,"فَلْيَعْبُدُوا رَبَّ هَـٰذَا الْبَيْتِ"],[4,"الَّذِي أَطْعَمَهُم مِّن جُوعٍ وَآمَنَهُم مِّنْ خَوْفٍ"]]
|
|
@ -1 +1 @@
|
||||||
[{"id":"107","place_of_revelation":"makkah","transliterated_name":"Al-Ma'un","translated_name":"The Small kindnesses","verse_count":7,"slug":"al-maun","codepoints":[1575,1604,1605,1575,1593,1608,1606]},[1,"أَرَأَيْتَ الَّذِي يُكَذِّبُ بِالدِّينِ"],[2,"فَذَٰلِكَ الَّذِي يَدُعُّ الْيَتِيمَ"],[3,"وَلَا يَحُضُّ عَلَىٰ طَعَامِ الْمِسْكِينِ"],[4,"فَوَيْلٌ لِّلْمُصَلِّينَ"],[5,"الَّذِينَ هُمْ عَن صَلَاتِهِمْ سَاهُونَ"],[6,"الَّذِينَ هُمْ يُرَاءُونَ"],[7,"وَيَمْنَعُونَ الْمَاعُونَ"]]
|
[{"id":107,"name":"The Small kindnesses","numberOfAyah":7,"romanized":{"name":"Al-Ma'un","slug":"al-maun"},"utf8":{"codepoints":[1575,1604,1605,1575,1593,1608,1606]}},[1,"أَرَأَيْتَ الَّذِي يُكَذِّبُ بِالدِّينِ"],[2,"فَذَٰلِكَ الَّذِي يَدُعُّ الْيَتِيمَ"],[3,"وَلَا يَحُضُّ عَلَىٰ طَعَامِ الْمِسْكِينِ"],[4,"فَوَيْلٌ لِّلْمُصَلِّينَ"],[5,"الَّذِينَ هُمْ عَن صَلَاتِهِمْ سَاهُونَ"],[6,"الَّذِينَ هُمْ يُرَاءُونَ"],[7,"وَيَمْنَعُونَ الْمَاعُونَ"]]
|
|
@ -1 +1 @@
|
||||||
[{"id":"108","place_of_revelation":"makkah","transliterated_name":"Al-Kawthar","translated_name":"The Abundance","verse_count":3,"slug":"al-kawthar","codepoints":[1575,1604,1603,1608,1579,1585]},[1,"إِنَّا أَعْطَيْنَاكَ الْكَوْثَرَ"],[2,"فَصَلِّ لِرَبِّكَ وَانْحَرْ"],[3,"إِنَّ شَانِئَكَ هُوَ الْأَبْتَرُ"]]
|
[{"id":108,"name":"The Abundance","numberOfAyah":3,"romanized":{"name":"Al-Kawthar","slug":"al-kawthar"},"utf8":{"codepoints":[1575,1604,1603,1608,1579,1585]}},[1,"إِنَّا أَعْطَيْنَاكَ الْكَوْثَرَ"],[2,"فَصَلِّ لِرَبِّكَ وَانْحَرْ"],[3,"إِنَّ شَانِئَكَ هُوَ الْأَبْتَرُ"]]
|
|
@ -1 +1 @@
|
||||||
[{"id":"109","place_of_revelation":"makkah","transliterated_name":"Al-Kafirun","translated_name":"The Disbelievers","verse_count":6,"slug":"al-kafirun","codepoints":[1575,1604,1603,1575,1601,1585,1608,1606]},[1,"قُلْ يَا أَيُّهَا الْكَافِرُونَ"],[2,"لَا أَعْبُدُ مَا تَعْبُدُونَ"],[3,"وَلَا أَنتُمْ عَابِدُونَ مَا أَعْبُدُ"],[4,"وَلَا أَنَا عَابِدٌ مَّا عَبَدتُّمْ"],[5,"وَلَا أَنتُمْ عَابِدُونَ مَا أَعْبُدُ"],[6,"لَكُمْ دِينُكُمْ وَلِيَ دِينِ"]]
|
[{"id":109,"name":"The Disbelievers","numberOfAyah":6,"romanized":{"name":"Al-Kafirun","slug":"al-kafirun"},"utf8":{"codepoints":[1575,1604,1603,1575,1601,1585,1608,1606]}},[1,"قُلْ يَا أَيُّهَا الْكَافِرُونَ"],[2,"لَا أَعْبُدُ مَا تَعْبُدُونَ"],[3,"وَلَا أَنتُمْ عَابِدُونَ مَا أَعْبُدُ"],[4,"وَلَا أَنَا عَابِدٌ مَّا عَبَدتُّمْ"],[5,"وَلَا أَنتُمْ عَابِدُونَ مَا أَعْبُدُ"],[6,"لَكُمْ دِينُكُمْ وَلِيَ دِينِ"]]
|
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
[{"id":"110","place_of_revelation":"madinah","transliterated_name":"An-Nasr","translated_name":"The Divine Support","verse_count":3,"slug":"an-nasr","codepoints":[1575,1604,1606,1589,1585]},[1,"إِذَا جَاءَ نَصْرُ اللَّهِ وَالْفَتْحُ"],[2,"وَرَأَيْتَ النَّاسَ يَدْخُلُونَ فِي دِينِ اللَّهِ أَفْوَاجًا"],[3,"فَسَبِّحْ بِحَمْدِ رَبِّكَ وَاسْتَغْفِرْهُ ۚ إِنَّهُ كَانَ تَوَّابًا"]]
|
[{"id":110,"name":"The Divine Support","numberOfAyah":3,"romanized":{"name":"An-Nasr","slug":"an-nasr"},"utf8":{"codepoints":[1575,1604,1606,1589,1585]}},[1,"إِذَا جَاءَ نَصْرُ اللَّهِ وَالْفَتْحُ"],[2,"وَرَأَيْتَ النَّاسَ يَدْخُلُونَ فِي دِينِ اللَّهِ أَفْوَاجًا"],[3,"فَسَبِّحْ بِحَمْدِ رَبِّكَ وَاسْتَغْفِرْهُ ۚ إِنَّهُ كَانَ تَوَّابًا"]]
|
|
@ -1 +1 @@
|
||||||
[{"id":"111","place_of_revelation":"makkah","transliterated_name":"Al-Masad","translated_name":"The Palm Fiber","verse_count":5,"slug":"al-masad","codepoints":[1575,1604,1605,1587,1583]},[1,"تَبَّتْ يَدَا أَبِي لَهَبٍ وَتَبَّ"],[2,"مَا أَغْنَىٰ عَنْهُ مَالُهُ وَمَا كَسَبَ"],[3,"سَيَصْلَىٰ نَارًا ذَاتَ لَهَبٍ"],[4,"وَامْرَأَتُهُ حَمَّالَةَ الْحَطَبِ"],[5,"فِي جِيدِهَا حَبْلٌ مِّن مَّسَدٍ"]]
|
[{"id":111,"name":"The Palm Fiber","numberOfAyah":5,"romanized":{"name":"Al-Masad","slug":"al-masad"},"utf8":{"codepoints":[1575,1604,1605,1587,1583]}},[1,"تَبَّتْ يَدَا أَبِي لَهَبٍ وَتَبَّ"],[2,"مَا أَغْنَىٰ عَنْهُ مَالُهُ وَمَا كَسَبَ"],[3,"سَيَصْلَىٰ نَارًا ذَاتَ لَهَبٍ"],[4,"وَامْرَأَتُهُ حَمَّالَةَ الْحَطَبِ"],[5,"فِي جِيدِهَا حَبْلٌ مِّن مَّسَدٍ"]]
|
|
@ -1 +1 @@
|
||||||
[{"id":"112","place_of_revelation":"makkah","transliterated_name":"Al-Ikhlas","translated_name":"The Sincerity","verse_count":4,"slug":"al-ikhlas","codepoints":[1575,1604,1573,1582,1604,1575,1589]},[1,"قُلْ هُوَ اللَّهُ أَحَدٌ"],[2,"اللَّهُ الصَّمَدُ"],[3,"لَمْ يَلِدْ وَلَمْ يُولَدْ"],[4,"وَلَمْ يَكُن لَّهُ كُفُوًا أَحَدٌ"]]
|
[{"id":112,"name":"The Sincerity","numberOfAyah":4,"romanized":{"name":"Al-Ikhlas","slug":"al-ikhlas"},"utf8":{"codepoints":[1575,1604,1573,1582,1604,1575,1589]}},[1,"قُلْ هُوَ اللَّهُ أَحَدٌ"],[2,"اللَّهُ الصَّمَدُ"],[3,"لَمْ يَلِدْ وَلَمْ يُولَدْ"],[4,"وَلَمْ يَكُن لَّهُ كُفُوًا أَحَدٌ"]]
|
|
@ -1 +1 @@
|
||||||
[{"id":"113","place_of_revelation":"makkah","transliterated_name":"Al-Falaq","translated_name":"The Daybreak","verse_count":5,"slug":"al-falaq","codepoints":[1575,1604,1601,1604,1602]},[1,"قُلْ أَعُوذُ بِرَبِّ الْفَلَقِ"],[2,"مِن شَرِّ مَا خَلَقَ"],[3,"وَمِن شَرِّ غَاسِقٍ إِذَا وَقَبَ"],[4,"وَمِن شَرِّ النَّفَّاثَاتِ فِي الْعُقَدِ"],[5,"وَمِن شَرِّ حَاسِدٍ إِذَا حَسَدَ"]]
|
[{"id":113,"name":"The Daybreak","numberOfAyah":5,"romanized":{"name":"Al-Falaq","slug":"al-falaq"},"utf8":{"codepoints":[1575,1604,1601,1604,1602]}},[1,"قُلْ أَعُوذُ بِرَبِّ الْفَلَقِ"],[2,"مِن شَرِّ مَا خَلَقَ"],[3,"وَمِن شَرِّ غَاسِقٍ إِذَا وَقَبَ"],[4,"وَمِن شَرِّ النَّفَّاثَاتِ فِي الْعُقَدِ"],[5,"وَمِن شَرِّ حَاسِدٍ إِذَا حَسَدَ"]]
|
|
@ -1 +1 @@
|
||||||
[{"id":"114","place_of_revelation":"makkah","transliterated_name":"An-Nas","translated_name":"Mankind","verse_count":6,"slug":"an-nas","codepoints":[1575,1604,1606,1575,1587]},[1,"قُلْ أَعُوذُ بِرَبِّ النَّاسِ"],[2,"مَلِكِ النَّاسِ"],[3,"إِلَـٰهِ النَّاسِ"],[4,"مِن شَرِّ الْوَسْوَاسِ الْخَنَّاسِ"],[5,"الَّذِي يُوَسْوِسُ فِي صُدُورِ النَّاسِ"],[6,"مِنَ الْجِنَّةِ وَالنَّاسِ"]]
|
[{"id":114,"name":"Mankind","numberOfAyah":6,"romanized":{"name":"An-Nas","slug":"an-nas"},"utf8":{"codepoints":[1575,1604,1606,1575,1587]}},[1,"قُلْ أَعُوذُ بِرَبِّ النَّاسِ"],[2,"مَلِكِ النَّاسِ"],[3,"إِلَـٰهِ النَّاسِ"],[4,"مِن شَرِّ الْوَسْوَاسِ الْخَنَّاسِ"],[5,"الَّذِي يُوَسْوِسُ فِي صُدُورِ النَّاسِ"],[6,"مِنَ الْجِنَّةِ وَالنَّاسِ"]]
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
[{"id":"61","place_of_revelation":"madinah","transliterated_name":"As-Saf","translated_name":"The Ranks","verse_count":14,"slug":"as-saf","codepoints":[1575,1604,1589,1601]},[1,"سَبَّحَ لِلَّهِ مَا فِي السَّمَاوَاتِ وَمَا فِي الْأَرْضِ ۖ وَهُوَ الْعَزِيزُ الْحَكِيمُ"],[2,"يَا أَيُّهَا الَّذِينَ آمَنُوا لِمَ تَقُولُونَ مَا لَا تَفْعَلُونَ"],[3,"كَبُرَ مَقْتًا عِندَ اللَّهِ أَن تَقُولُوا مَا لَا تَفْعَلُونَ"],[4,"إِنَّ اللَّهَ يُحِبُّ الَّذِينَ يُقَاتِلُونَ فِي سَبِيلِهِ صَفًّا كَأَنَّهُم بُنْيَانٌ مَّرْصُوصٌ"],[5,"وَإِذْ قَالَ مُوسَىٰ لِقَوْمِهِ يَا قَوْمِ لِمَ تُؤْذُونَنِي وَقَد تَّعْلَمُونَ أَنِّي رَسُولُ اللَّهِ إِلَيْكُمْ ۖ فَلَمَّا زَاغُوا أَزَاغَ اللَّهُ قُلُوبَهُمْ ۚ وَاللَّهُ لَا يَهْدِي الْقَوْمَ الْفَاسِقِينَ"],[6,"وَإِذْ قَالَ عِيسَى ابْنُ مَرْيَمَ يَا بَنِي إِسْرَائِيلَ إِنِّي رَسُولُ اللَّهِ إِلَيْكُم مُّصَدِّقًا لِّمَا بَيْنَ يَدَيَّ مِنَ التَّوْرَاةِ وَمُبَشِّرًا بِرَسُولٍ يَأْتِي مِن بَعْدِي اسْمُهُ أَحْمَدُ ۖ فَلَمَّا جَاءَهُم بِالْبَيِّنَاتِ قَالُوا هَـٰذَا سِحْرٌ مُّبِينٌ"],[7,"وَمَنْ أَظْلَمُ مِمَّنِ افْتَرَىٰ عَلَى اللَّهِ الْكَذِبَ وَهُوَ يُدْعَىٰ إِلَى الْإِسْلَامِ ۚ وَاللَّهُ لَا يَهْدِي الْقَوْمَ الظَّالِمِينَ"],[8,"يُرِيدُونَ لِيُطْفِئُوا نُورَ اللَّهِ بِأَفْوَاهِهِمْ وَاللَّهُ مُتِمُّ نُورِهِ وَلَوْ كَرِهَ الْكَافِرُونَ"],[9,"هُوَ الَّذِي أَرْسَلَ رَسُولَهُ بِالْهُدَىٰ وَدِينِ الْحَقِّ لِيُظْهِرَهُ عَلَى الدِّينِ كُلِّهِ وَلَوْ كَرِهَ الْمُشْرِكُونَ"],[10,"يَا أَيُّهَا الَّذِينَ آمَنُوا هَلْ أَدُلُّكُمْ عَلَىٰ تِجَارَةٍ تُنجِيكُم مِّنْ عَذَابٍ أَلِيمٍ"],[11,"تُؤْمِنُونَ بِاللَّهِ وَرَسُولِهِ وَتُجَاهِدُونَ فِي سَبِيلِ اللَّهِ بِأَمْوَالِكُمْ وَأَنفُسِكُمْ ۚ ذَٰلِكُمْ خَيْرٌ لَّكُمْ إِن كُنتُمْ تَعْلَمُونَ"],[12,"يَغْفِرْ لَكُمْ ذُنُوبَكُمْ وَيُدْخِلْكُمْ جَنَّاتٍ تَجْرِي مِن تَحْتِهَا الْأَنْهَارُ وَمَسَاكِنَ طَيِّبَةً فِي جَنَّاتِ عَدْنٍ ۚ ذَٰلِكَ الْفَوْزُ الْعَظِيمُ"],[13,"وَأُخْرَىٰ تُحِبُّونَهَا ۖ نَصْرٌ مِّنَ اللَّهِ وَفَتْحٌ قَرِيبٌ ۗ وَبَشِّرِ الْمُؤْمِنِينَ"],[14,"يَا أَيُّهَا الَّذِينَ آمَنُوا كُونُوا أَنصَارَ اللَّهِ كَمَا قَالَ عِيسَى ابْنُ مَرْيَمَ لِلْحَوَارِيِّينَ مَنْ أَنصَارِي إِلَى اللَّهِ ۖ قَالَ الْحَوَارِيُّونَ نَحْنُ أَنصَارُ اللَّهِ ۖ فَآمَنَت طَّائِفَةٌ مِّن بَنِي إِسْرَائِيلَ وَكَفَرَت طَّائِفَةٌ ۖ فَأَيَّدْنَا الَّذِينَ آمَنُوا عَلَىٰ عَدُوِّهِمْ فَأَصْبَحُوا ظَاهِرِينَ"]]
|
[{"id":61,"name":"The Ranks","numberOfAyah":14,"romanized":{"name":"As-Saf","slug":"as-saf"},"utf8":{"codepoints":[1575,1604,1589,1601]}},[1,"سَبَّحَ لِلَّهِ مَا فِي السَّمَاوَاتِ وَمَا فِي الْأَرْضِ ۖ وَهُوَ الْعَزِيزُ الْحَكِيمُ"],[2,"يَا أَيُّهَا الَّذِينَ آمَنُوا لِمَ تَقُولُونَ مَا لَا تَفْعَلُونَ"],[3,"كَبُرَ مَقْتًا عِندَ اللَّهِ أَن تَقُولُوا مَا لَا تَفْعَلُونَ"],[4,"إِنَّ اللَّهَ يُحِبُّ الَّذِينَ يُقَاتِلُونَ فِي سَبِيلِهِ صَفًّا كَأَنَّهُم بُنْيَانٌ مَّرْصُوصٌ"],[5,"وَإِذْ قَالَ مُوسَىٰ لِقَوْمِهِ يَا قَوْمِ لِمَ تُؤْذُونَنِي وَقَد تَّعْلَمُونَ أَنِّي رَسُولُ اللَّهِ إِلَيْكُمْ ۖ فَلَمَّا زَاغُوا أَزَاغَ اللَّهُ قُلُوبَهُمْ ۚ وَاللَّهُ لَا يَهْدِي الْقَوْمَ الْفَاسِقِينَ"],[6,"وَإِذْ قَالَ عِيسَى ابْنُ مَرْيَمَ يَا بَنِي إِسْرَائِيلَ إِنِّي رَسُولُ اللَّهِ إِلَيْكُم مُّصَدِّقًا لِّمَا بَيْنَ يَدَيَّ مِنَ التَّوْرَاةِ وَمُبَشِّرًا بِرَسُولٍ يَأْتِي مِن بَعْدِي اسْمُهُ أَحْمَدُ ۖ فَلَمَّا جَاءَهُم بِالْبَيِّنَاتِ قَالُوا هَـٰذَا سِحْرٌ مُّبِينٌ"],[7,"وَمَنْ أَظْلَمُ مِمَّنِ افْتَرَىٰ عَلَى اللَّهِ الْكَذِبَ وَهُوَ يُدْعَىٰ إِلَى الْإِسْلَامِ ۚ وَاللَّهُ لَا يَهْدِي الْقَوْمَ الظَّالِمِينَ"],[8,"يُرِيدُونَ لِيُطْفِئُوا نُورَ اللَّهِ بِأَفْوَاهِهِمْ وَاللَّهُ مُتِمُّ نُورِهِ وَلَوْ كَرِهَ الْكَافِرُونَ"],[9,"هُوَ الَّذِي أَرْسَلَ رَسُولَهُ بِالْهُدَىٰ وَدِينِ الْحَقِّ لِيُظْهِرَهُ عَلَى الدِّينِ كُلِّهِ وَلَوْ كَرِهَ الْمُشْرِكُونَ"],[10,"يَا أَيُّهَا الَّذِينَ آمَنُوا هَلْ أَدُلُّكُمْ عَلَىٰ تِجَارَةٍ تُنجِيكُم مِّنْ عَذَابٍ أَلِيمٍ"],[11,"تُؤْمِنُونَ بِاللَّهِ وَرَسُولِهِ وَتُجَاهِدُونَ فِي سَبِيلِ اللَّهِ بِأَمْوَالِكُمْ وَأَنفُسِكُمْ ۚ ذَٰلِكُمْ خَيْرٌ لَّكُمْ إِن كُنتُمْ تَعْلَمُونَ"],[12,"يَغْفِرْ لَكُمْ ذُنُوبَكُمْ وَيُدْخِلْكُمْ جَنَّاتٍ تَجْرِي مِن تَحْتِهَا الْأَنْهَارُ وَمَسَاكِنَ طَيِّبَةً فِي جَنَّاتِ عَدْنٍ ۚ ذَٰلِكَ الْفَوْزُ الْعَظِيمُ"],[13,"وَأُخْرَىٰ تُحِبُّونَهَا ۖ نَصْرٌ مِّنَ اللَّهِ وَفَتْحٌ قَرِيبٌ ۗ وَبَشِّرِ الْمُؤْمِنِينَ"],[14,"يَا أَيُّهَا الَّذِينَ آمَنُوا كُونُوا أَنصَارَ اللَّهِ كَمَا قَالَ عِيسَى ابْنُ مَرْيَمَ لِلْحَوَارِيِّينَ مَنْ أَنصَارِي إِلَى اللَّهِ ۖ قَالَ الْحَوَارِيُّونَ نَحْنُ أَنصَارُ اللَّهِ ۖ فَآمَنَت طَّائِفَةٌ مِّن بَنِي إِسْرَائِيلَ وَكَفَرَت طَّائِفَةٌ ۖ فَأَيَّدْنَا الَّذِينَ آمَنُوا عَلَىٰ عَدُوِّهِمْ فَأَصْبَحُوا ظَاهِرِينَ"]]
|
|
@ -1 +1 @@
|
||||||
[{"id":"62","place_of_revelation":"madinah","transliterated_name":"Al-Jumu'ah","translated_name":"The Congregation, Friday","verse_count":11,"slug":"al-jumuah","codepoints":[1575,1604,1580,1605,1593,1577]},[1,"يُسَبِّحُ لِلَّهِ مَا فِي السَّمَاوَاتِ وَمَا فِي الْأَرْضِ الْمَلِكِ الْقُدُّوسِ الْعَزِيزِ الْحَكِيمِ"],[2,"هُوَ الَّذِي بَعَثَ فِي الْأُمِّيِّينَ رَسُولًا مِّنْهُمْ يَتْلُو عَلَيْهِمْ آيَاتِهِ وَيُزَكِّيهِمْ وَيُعَلِّمُهُمُ الْكِتَابَ وَالْحِكْمَةَ وَإِن كَانُوا مِن قَبْلُ لَفِي ضَلَالٍ مُّبِينٍ"],[3,"وَآخَرِينَ مِنْهُمْ لَمَّا يَلْحَقُوا بِهِمْ ۚ وَهُوَ الْعَزِيزُ الْحَكِيمُ"],[4,"ذَٰلِكَ فَضْلُ اللَّهِ يُؤْتِيهِ مَن يَشَاءُ ۚ وَاللَّهُ ذُو الْفَضْلِ الْعَظِيمِ"],[5,"مَثَلُ الَّذِينَ حُمِّلُوا التَّوْرَاةَ ثُمَّ لَمْ يَحْمِلُوهَا كَمَثَلِ الْحِمَارِ يَحْمِلُ أَسْفَارًا ۚ بِئْسَ مَثَلُ الْقَوْمِ الَّذِينَ كَذَّبُوا بِآيَاتِ اللَّهِ ۚ وَاللَّهُ لَا يَهْدِي الْقَوْمَ الظَّالِمِينَ"],[6,"قُلْ يَا أَيُّهَا الَّذِينَ هَادُوا إِن زَعَمْتُمْ أَنَّكُمْ أَوْلِيَاءُ لِلَّهِ مِن دُونِ النَّاسِ فَتَمَنَّوُا الْمَوْتَ إِن كُنتُمْ صَادِقِينَ"],[7,"وَلَا يَتَمَنَّوْنَهُ أَبَدًا بِمَا قَدَّمَتْ أَيْدِيهِمْ ۚ وَاللَّهُ عَلِيمٌ بِالظَّالِمِينَ"],[8,"قُلْ إِنَّ الْمَوْتَ الَّذِي تَفِرُّونَ مِنْهُ فَإِنَّهُ مُلَاقِيكُمْ ۖ ثُمَّ تُرَدُّونَ إِلَىٰ عَالِمِ الْغَيْبِ وَالشَّهَادَةِ فَيُنَبِّئُكُم بِمَا كُنتُمْ تَعْمَلُونَ"],[9,"يَا أَيُّهَا الَّذِينَ آمَنُوا إِذَا نُودِيَ لِلصَّلَاةِ مِن يَوْمِ الْجُمُعَةِ فَاسْعَوْا إِلَىٰ ذِكْرِ اللَّهِ وَذَرُوا الْبَيْعَ ۚ ذَٰلِكُمْ خَيْرٌ لَّكُمْ إِن كُنتُمْ تَعْلَمُونَ"],[10,"فَإِذَا قُضِيَتِ الصَّلَاةُ فَانتَشِرُوا فِي الْأَرْضِ وَابْتَغُوا مِن فَضْلِ اللَّهِ وَاذْكُرُوا اللَّهَ كَثِيرًا لَّعَلَّكُمْ تُفْلِحُونَ"],[11,"وَإِذَا رَأَوْا تِجَارَةً أَوْ لَهْوًا انفَضُّوا إِلَيْهَا وَتَرَكُوكَ قَائِمًا ۚ قُلْ مَا عِندَ اللَّهِ خَيْرٌ مِّنَ اللَّهْوِ وَمِنَ التِّجَارَةِ ۚ وَاللَّهُ خَيْرُ الرَّازِقِينَ"]]
|
[{"id":62,"name":"The Congregation, Friday","numberOfAyah":11,"romanized":{"name":"Al-Jumu'ah","slug":"al-jumuah"},"utf8":{"codepoints":[1575,1604,1580,1605,1593,1577]}},[1,"يُسَبِّحُ لِلَّهِ مَا فِي السَّمَاوَاتِ وَمَا فِي الْأَرْضِ الْمَلِكِ الْقُدُّوسِ الْعَزِيزِ الْحَكِيمِ"],[2,"هُوَ الَّذِي بَعَثَ فِي الْأُمِّيِّينَ رَسُولًا مِّنْهُمْ يَتْلُو عَلَيْهِمْ آيَاتِهِ وَيُزَكِّيهِمْ وَيُعَلِّمُهُمُ الْكِتَابَ وَالْحِكْمَةَ وَإِن كَانُوا مِن قَبْلُ لَفِي ضَلَالٍ مُّبِينٍ"],[3,"وَآخَرِينَ مِنْهُمْ لَمَّا يَلْحَقُوا بِهِمْ ۚ وَهُوَ الْعَزِيزُ الْحَكِيمُ"],[4,"ذَٰلِكَ فَضْلُ اللَّهِ يُؤْتِيهِ مَن يَشَاءُ ۚ وَاللَّهُ ذُو الْفَضْلِ الْعَظِيمِ"],[5,"مَثَلُ الَّذِينَ حُمِّلُوا التَّوْرَاةَ ثُمَّ لَمْ يَحْمِلُوهَا كَمَثَلِ الْحِمَارِ يَحْمِلُ أَسْفَارًا ۚ بِئْسَ مَثَلُ الْقَوْمِ الَّذِينَ كَذَّبُوا بِآيَاتِ اللَّهِ ۚ وَاللَّهُ لَا يَهْدِي الْقَوْمَ الظَّالِمِينَ"],[6,"قُلْ يَا أَيُّهَا الَّذِينَ هَادُوا إِن زَعَمْتُمْ أَنَّكُمْ أَوْلِيَاءُ لِلَّهِ مِن دُونِ النَّاسِ فَتَمَنَّوُا الْمَوْتَ إِن كُنتُمْ صَادِقِينَ"],[7,"وَلَا يَتَمَنَّوْنَهُ أَبَدًا بِمَا قَدَّمَتْ أَيْدِيهِمْ ۚ وَاللَّهُ عَلِيمٌ بِالظَّالِمِينَ"],[8,"قُلْ إِنَّ الْمَوْتَ الَّذِي تَفِرُّونَ مِنْهُ فَإِنَّهُ مُلَاقِيكُمْ ۖ ثُمَّ تُرَدُّونَ إِلَىٰ عَالِمِ الْغَيْبِ وَالشَّهَادَةِ فَيُنَبِّئُكُم بِمَا كُنتُمْ تَعْمَلُونَ"],[9,"يَا أَيُّهَا الَّذِينَ آمَنُوا إِذَا نُودِيَ لِلصَّلَاةِ مِن يَوْمِ الْجُمُعَةِ فَاسْعَوْا إِلَىٰ ذِكْرِ اللَّهِ وَذَرُوا الْبَيْعَ ۚ ذَٰلِكُمْ خَيْرٌ لَّكُمْ إِن كُنتُمْ تَعْلَمُونَ"],[10,"فَإِذَا قُضِيَتِ الصَّلَاةُ فَانتَشِرُوا فِي الْأَرْضِ وَابْتَغُوا مِن فَضْلِ اللَّهِ وَاذْكُرُوا اللَّهَ كَثِيرًا لَّعَلَّكُمْ تُفْلِحُونَ"],[11,"وَإِذَا رَأَوْا تِجَارَةً أَوْ لَهْوًا انفَضُّوا إِلَيْهَا وَتَرَكُوكَ قَائِمًا ۚ قُلْ مَا عِندَ اللَّهِ خَيْرٌ مِّنَ اللَّهْوِ وَمِنَ التِّجَارَةِ ۚ وَاللَّهُ خَيْرُ الرَّازِقِينَ"]]
|
|
@ -1 +1 @@
|
||||||
[{"id":"63","place_of_revelation":"madinah","transliterated_name":"Al-Munafiqun","translated_name":"The Hypocrites","verse_count":11,"slug":"al-munafiqun","codepoints":[1575,1604,1605,1606,1575,1601,1602,1608,1606]},[1,"إِذَا جَاءَكَ الْمُنَافِقُونَ قَالُوا نَشْهَدُ إِنَّكَ لَرَسُولُ اللَّهِ ۗ وَاللَّهُ يَعْلَمُ إِنَّكَ لَرَسُولُهُ وَاللَّهُ يَشْهَدُ إِنَّ الْمُنَافِقِينَ لَكَاذِبُونَ"],[2,"اتَّخَذُوا أَيْمَانَهُمْ جُنَّةً فَصَدُّوا عَن سَبِيلِ اللَّهِ ۚ إِنَّهُمْ سَاءَ مَا كَانُوا يَعْمَلُونَ"],[3,"ذَٰلِكَ بِأَنَّهُمْ آمَنُوا ثُمَّ كَفَرُوا فَطُبِعَ عَلَىٰ قُلُوبِهِمْ فَهُمْ لَا يَفْقَهُونَ"],[4," ۞ وَإِذَا رَأَيْتَهُمْ تُعْجِبُكَ أَجْسَامُهُمْ ۖ وَإِن يَقُولُوا تَسْمَعْ لِقَوْلِهِمْ ۖ كَأَنَّهُمْ خُشُبٌ مُّسَنَّدَةٌ ۖ يَحْسَبُونَ كُلَّ صَيْحَةٍ عَلَيْهِمْ ۚ هُمُ الْعَدُوُّ فَاحْذَرْهُمْ ۚ قَاتَلَهُمُ اللَّهُ ۖ أَنَّىٰ يُؤْفَكُونَ"],[5,"وَإِذَا قِيلَ لَهُمْ تَعَالَوْا يَسْتَغْفِرْ لَكُمْ رَسُولُ اللَّهِ لَوَّوْا رُءُوسَهُمْ وَرَأَيْتَهُمْ يَصُدُّونَ وَهُم مُّسْتَكْبِرُونَ"],[6,"سَوَاءٌ عَلَيْهِمْ أَسْتَغْفَرْتَ لَهُمْ أَمْ لَمْ تَسْتَغْفِرْ لَهُمْ لَن يَغْفِرَ اللَّهُ لَهُمْ ۚ إِنَّ اللَّهَ لَا يَهْدِي الْقَوْمَ الْفَاسِقِينَ"],[7,"هُمُ الَّذِينَ يَقُولُونَ لَا تُنفِقُوا عَلَىٰ مَنْ عِندَ رَسُولِ اللَّهِ حَتَّىٰ يَنفَضُّوا ۗ وَلِلَّهِ خَزَائِنُ السَّمَاوَاتِ وَالْأَرْضِ وَلَـٰكِنَّ الْمُنَافِقِينَ لَا يَفْقَهُونَ"],[8,"يَقُولُونَ لَئِن رَّجَعْنَا إِلَى الْمَدِينَةِ لَيُخْرِجَنَّ الْأَعَزُّ مِنْهَا الْأَذَلَّ ۚ وَلِلَّهِ الْعِزَّةُ وَلِرَسُولِهِ وَلِلْمُؤْمِنِينَ وَلَـٰكِنَّ الْمُنَافِقِينَ لَا يَعْلَمُونَ"],[9,"يَا أَيُّهَا الَّذِينَ آمَنُوا لَا تُلْهِكُمْ أَمْوَالُكُمْ وَلَا أَوْلَادُكُمْ عَن ذِكْرِ اللَّهِ ۚ وَمَن يَفْعَلْ ذَٰلِكَ فَأُولَـٰئِكَ هُمُ الْخَاسِرُونَ"],[10,"وَأَنفِقُوا مِن مَّا رَزَقْنَاكُم مِّن قَبْلِ أَن يَأْتِيَ أَحَدَكُمُ الْمَوْتُ فَيَقُولَ رَبِّ لَوْلَا أَخَّرْتَنِي إِلَىٰ أَجَلٍ قَرِيبٍ فَأَصَّدَّقَ وَأَكُن مِّنَ الصَّالِحِينَ"],[11,"وَلَن يُؤَخِّرَ اللَّهُ نَفْسًا إِذَا جَاءَ أَجَلُهَا ۚ وَاللَّهُ خَبِيرٌ بِمَا تَعْمَلُونَ"]]
|
[{"id":63,"name":"The Hypocrites","numberOfAyah":11,"romanized":{"name":"Al-Munafiqun","slug":"al-munafiqun"},"utf8":{"codepoints":[1575,1604,1605,1606,1575,1601,1602,1608,1606]}},[1,"إِذَا جَاءَكَ الْمُنَافِقُونَ قَالُوا نَشْهَدُ إِنَّكَ لَرَسُولُ اللَّهِ ۗ وَاللَّهُ يَعْلَمُ إِنَّكَ لَرَسُولُهُ وَاللَّهُ يَشْهَدُ إِنَّ الْمُنَافِقِينَ لَكَاذِبُونَ"],[2,"اتَّخَذُوا أَيْمَانَهُمْ جُنَّةً فَصَدُّوا عَن سَبِيلِ اللَّهِ ۚ إِنَّهُمْ سَاءَ مَا كَانُوا يَعْمَلُونَ"],[3,"ذَٰلِكَ بِأَنَّهُمْ آمَنُوا ثُمَّ كَفَرُوا فَطُبِعَ عَلَىٰ قُلُوبِهِمْ فَهُمْ لَا يَفْقَهُونَ"],[4," ۞ وَإِذَا رَأَيْتَهُمْ تُعْجِبُكَ أَجْسَامُهُمْ ۖ وَإِن يَقُولُوا تَسْمَعْ لِقَوْلِهِمْ ۖ كَأَنَّهُمْ خُشُبٌ مُّسَنَّدَةٌ ۖ يَحْسَبُونَ كُلَّ صَيْحَةٍ عَلَيْهِمْ ۚ هُمُ الْعَدُوُّ فَاحْذَرْهُمْ ۚ قَاتَلَهُمُ اللَّهُ ۖ أَنَّىٰ يُؤْفَكُونَ"],[5,"وَإِذَا قِيلَ لَهُمْ تَعَالَوْا يَسْتَغْفِرْ لَكُمْ رَسُولُ اللَّهِ لَوَّوْا رُءُوسَهُمْ وَرَأَيْتَهُمْ يَصُدُّونَ وَهُم مُّسْتَكْبِرُونَ"],[6,"سَوَاءٌ عَلَيْهِمْ أَسْتَغْفَرْتَ لَهُمْ أَمْ لَمْ تَسْتَغْفِرْ لَهُمْ لَن يَغْفِرَ اللَّهُ لَهُمْ ۚ إِنَّ اللَّهَ لَا يَهْدِي الْقَوْمَ الْفَاسِقِينَ"],[7,"هُمُ الَّذِينَ يَقُولُونَ لَا تُنفِقُوا عَلَىٰ مَنْ عِندَ رَسُولِ اللَّهِ حَتَّىٰ يَنفَضُّوا ۗ وَلِلَّهِ خَزَائِنُ السَّمَاوَاتِ وَالْأَرْضِ وَلَـٰكِنَّ الْمُنَافِقِينَ لَا يَفْقَهُونَ"],[8,"يَقُولُونَ لَئِن رَّجَعْنَا إِلَى الْمَدِينَةِ لَيُخْرِجَنَّ الْأَعَزُّ مِنْهَا الْأَذَلَّ ۚ وَلِلَّهِ الْعِزَّةُ وَلِرَسُولِهِ وَلِلْمُؤْمِنِينَ وَلَـٰكِنَّ الْمُنَافِقِينَ لَا يَعْلَمُونَ"],[9,"يَا أَيُّهَا الَّذِينَ آمَنُوا لَا تُلْهِكُمْ أَمْوَالُكُمْ وَلَا أَوْلَادُكُمْ عَن ذِكْرِ اللَّهِ ۚ وَمَن يَفْعَلْ ذَٰلِكَ فَأُولَـٰئِكَ هُمُ الْخَاسِرُونَ"],[10,"وَأَنفِقُوا مِن مَّا رَزَقْنَاكُم مِّن قَبْلِ أَن يَأْتِيَ أَحَدَكُمُ الْمَوْتُ فَيَقُولَ رَبِّ لَوْلَا أَخَّرْتَنِي إِلَىٰ أَجَلٍ قَرِيبٍ فَأَصَّدَّقَ وَأَكُن مِّنَ الصَّالِحِينَ"],[11,"وَلَن يُؤَخِّرَ اللَّهُ نَفْسًا إِذَا جَاءَ أَجَلُهَا ۚ وَاللَّهُ خَبِيرٌ بِمَا تَعْمَلُونَ"]]
|
|
@ -1 +1 @@
|
||||||
[{"id":"64","place_of_revelation":"madinah","transliterated_name":"At-Taghabun","translated_name":"The Mutual Disillusion","verse_count":18,"slug":"at-taghabun","codepoints":[1575,1604,1578,1594,1575,1576,1606]},[1,"يُسَبِّحُ لِلَّهِ مَا فِي السَّمَاوَاتِ وَمَا فِي الْأَرْضِ ۖ لَهُ الْمُلْكُ وَلَهُ الْحَمْدُ ۖ وَهُوَ عَلَىٰ كُلِّ شَيْءٍ قَدِيرٌ"],[2,"هُوَ الَّذِي خَلَقَكُمْ فَمِنكُمْ كَافِرٌ وَمِنكُم مُّؤْمِنٌ ۚ وَاللَّهُ بِمَا تَعْمَلُونَ بَصِيرٌ"],[3,"خَلَقَ السَّمَاوَاتِ وَالْأَرْضَ بِالْحَقِّ وَصَوَّرَكُمْ فَأَحْسَنَ صُوَرَكُمْ ۖ وَإِلَيْهِ الْمَصِيرُ"],[4,"يَعْلَمُ مَا فِي السَّمَاوَاتِ وَالْأَرْضِ وَيَعْلَمُ مَا تُسِرُّونَ وَمَا تُعْلِنُونَ ۚ وَاللَّهُ عَلِيمٌ بِذَاتِ الصُّدُورِ"],[5,"أَلَمْ يَأْتِكُمْ نَبَأُ الَّذِينَ كَفَرُوا مِن قَبْلُ فَذَاقُوا وَبَالَ أَمْرِهِمْ وَلَهُمْ عَذَابٌ أَلِيمٌ"],[6,"ذَٰلِكَ بِأَنَّهُ كَانَت تَّأْتِيهِمْ رُسُلُهُم بِالْبَيِّنَاتِ فَقَالُوا أَبَشَرٌ يَهْدُونَنَا فَكَفَرُوا وَتَوَلَّوا ۚ وَّاسْتَغْنَى اللَّهُ ۚ وَاللَّهُ غَنِيٌّ حَمِيدٌ"],[7,"زَعَمَ الَّذِينَ كَفَرُوا أَن لَّن يُبْعَثُوا ۚ قُلْ بَلَىٰ وَرَبِّي لَتُبْعَثُنَّ ثُمَّ لَتُنَبَّؤُنَّ بِمَا عَمِلْتُمْ ۚ وَذَٰلِكَ عَلَى اللَّهِ يَسِيرٌ"],[8,"فَآمِنُوا بِاللَّهِ وَرَسُولِهِ وَالنُّورِ الَّذِي أَنزَلْنَا ۚ وَاللَّهُ بِمَا تَعْمَلُونَ خَبِيرٌ"],[9,"يَوْمَ يَجْمَعُكُمْ لِيَوْمِ الْجَمْعِ ۖ ذَٰلِكَ يَوْمُ التَّغَابُنِ ۗ وَمَن يُؤْمِن بِاللَّهِ وَيَعْمَلْ صَالِحًا يُكَفِّرْ عَنْهُ سَيِّئَاتِهِ وَيُدْخِلْهُ جَنَّاتٍ تَجْرِي مِن تَحْتِهَا الْأَنْهَارُ خَالِدِينَ فِيهَا أَبَدًا ۚ ذَٰلِكَ الْفَوْزُ الْعَظِيمُ"],[10,"وَالَّذِينَ كَفَرُوا وَكَذَّبُوا بِآيَاتِنَا أُولَـٰئِكَ أَصْحَابُ النَّارِ خَالِدِينَ فِيهَا ۖ وَبِئْسَ الْمَصِيرُ"],[11,"مَا أَصَابَ مِن مُّصِيبَةٍ إِلَّا بِإِذْنِ اللَّهِ ۗ وَمَن يُؤْمِن بِاللَّهِ يَهْدِ قَلْبَهُ ۚ وَاللَّهُ بِكُلِّ شَيْءٍ عَلِيمٌ"],[12,"وَأَطِيعُوا اللَّهَ وَأَطِيعُوا الرَّسُولَ ۚ فَإِن تَوَلَّيْتُمْ فَإِنَّمَا عَلَىٰ رَسُولِنَا الْبَلَاغُ الْمُبِينُ"],[13,"اللَّهُ لَا إِلَـٰهَ إِلَّا هُوَ ۚ وَعَلَى اللَّهِ فَلْيَتَوَكَّلِ الْمُؤْمِنُونَ"],[14,"يَا أَيُّهَا الَّذِينَ آمَنُوا إِنَّ مِنْ أَزْوَاجِكُمْ وَأَوْلَادِكُمْ عَدُوًّا لَّكُمْ فَاحْذَرُوهُمْ ۚ وَإِن تَعْفُوا وَتَصْفَحُوا وَتَغْفِرُوا فَإِنَّ اللَّهَ غَفُورٌ رَّحِيمٌ"],[15,"إِنَّمَا أَمْوَالُكُمْ وَأَوْلَادُكُمْ فِتْنَةٌ ۚ وَاللَّهُ عِندَهُ أَجْرٌ عَظِيمٌ"],[16,"فَاتَّقُوا اللَّهَ مَا اسْتَطَعْتُمْ وَاسْمَعُوا وَأَطِيعُوا وَأَنفِقُوا خَيْرًا لِّأَنفُسِكُمْ ۗ وَمَن يُوقَ شُحَّ نَفْسِهِ فَأُولَـٰئِكَ هُمُ الْمُفْلِحُونَ"],[17,"إِن تُقْرِضُوا اللَّهَ قَرْضًا حَسَنًا يُضَاعِفْهُ لَكُمْ وَيَغْفِرْ لَكُمْ ۚ وَاللَّهُ شَكُورٌ حَلِيمٌ"],[18,"عَالِمُ الْغَيْبِ وَالشَّهَادَةِ الْعَزِيزُ الْحَكِيمُ"]]
|
[{"id":64,"name":"The Mutual Disillusion","numberOfAyah":18,"romanized":{"name":"At-Taghabun","slug":"at-taghabun"},"utf8":{"codepoints":[1575,1604,1578,1594,1575,1576,1606]}},[1,"يُسَبِّحُ لِلَّهِ مَا فِي السَّمَاوَاتِ وَمَا فِي الْأَرْضِ ۖ لَهُ الْمُلْكُ وَلَهُ الْحَمْدُ ۖ وَهُوَ عَلَىٰ كُلِّ شَيْءٍ قَدِيرٌ"],[2,"هُوَ الَّذِي خَلَقَكُمْ فَمِنكُمْ كَافِرٌ وَمِنكُم مُّؤْمِنٌ ۚ وَاللَّهُ بِمَا تَعْمَلُونَ بَصِيرٌ"],[3,"خَلَقَ السَّمَاوَاتِ وَالْأَرْضَ بِالْحَقِّ وَصَوَّرَكُمْ فَأَحْسَنَ صُوَرَكُمْ ۖ وَإِلَيْهِ الْمَصِيرُ"],[4,"يَعْلَمُ مَا فِي السَّمَاوَاتِ وَالْأَرْضِ وَيَعْلَمُ مَا تُسِرُّونَ وَمَا تُعْلِنُونَ ۚ وَاللَّهُ عَلِيمٌ بِذَاتِ الصُّدُورِ"],[5,"أَلَمْ يَأْتِكُمْ نَبَأُ الَّذِينَ كَفَرُوا مِن قَبْلُ فَذَاقُوا وَبَالَ أَمْرِهِمْ وَلَهُمْ عَذَابٌ أَلِيمٌ"],[6,"ذَٰلِكَ بِأَنَّهُ كَانَت تَّأْتِيهِمْ رُسُلُهُم بِالْبَيِّنَاتِ فَقَالُوا أَبَشَرٌ يَهْدُونَنَا فَكَفَرُوا وَتَوَلَّوا ۚ وَّاسْتَغْنَى اللَّهُ ۚ وَاللَّهُ غَنِيٌّ حَمِيدٌ"],[7,"زَعَمَ الَّذِينَ كَفَرُوا أَن لَّن يُبْعَثُوا ۚ قُلْ بَلَىٰ وَرَبِّي لَتُبْعَثُنَّ ثُمَّ لَتُنَبَّؤُنَّ بِمَا عَمِلْتُمْ ۚ وَذَٰلِكَ عَلَى اللَّهِ يَسِيرٌ"],[8,"فَآمِنُوا بِاللَّهِ وَرَسُولِهِ وَالنُّورِ الَّذِي أَنزَلْنَا ۚ وَاللَّهُ بِمَا تَعْمَلُونَ خَبِيرٌ"],[9,"يَوْمَ يَجْمَعُكُمْ لِيَوْمِ الْجَمْعِ ۖ ذَٰلِكَ يَوْمُ التَّغَابُنِ ۗ وَمَن يُؤْمِن بِاللَّهِ وَيَعْمَلْ صَالِحًا يُكَفِّرْ عَنْهُ سَيِّئَاتِهِ وَيُدْخِلْهُ جَنَّاتٍ تَجْرِي مِن تَحْتِهَا الْأَنْهَارُ خَالِدِينَ فِيهَا أَبَدًا ۚ ذَٰلِكَ الْفَوْزُ الْعَظِيمُ"],[10,"وَالَّذِينَ كَفَرُوا وَكَذَّبُوا بِآيَاتِنَا أُولَـٰئِكَ أَصْحَابُ النَّارِ خَالِدِينَ فِيهَا ۖ وَبِئْسَ الْمَصِيرُ"],[11,"مَا أَصَابَ مِن مُّصِيبَةٍ إِلَّا بِإِذْنِ اللَّهِ ۗ وَمَن يُؤْمِن بِاللَّهِ يَهْدِ قَلْبَهُ ۚ وَاللَّهُ بِكُلِّ شَيْءٍ عَلِيمٌ"],[12,"وَأَطِيعُوا اللَّهَ وَأَطِيعُوا الرَّسُولَ ۚ فَإِن تَوَلَّيْتُمْ فَإِنَّمَا عَلَىٰ رَسُولِنَا الْبَلَاغُ الْمُبِينُ"],[13,"اللَّهُ لَا إِلَـٰهَ إِلَّا هُوَ ۚ وَعَلَى اللَّهِ فَلْيَتَوَكَّلِ الْمُؤْمِنُونَ"],[14,"يَا أَيُّهَا الَّذِينَ آمَنُوا إِنَّ مِنْ أَزْوَاجِكُمْ وَأَوْلَادِكُمْ عَدُوًّا لَّكُمْ فَاحْذَرُوهُمْ ۚ وَإِن تَعْفُوا وَتَصْفَحُوا وَتَغْفِرُوا فَإِنَّ اللَّهَ غَفُورٌ رَّحِيمٌ"],[15,"إِنَّمَا أَمْوَالُكُمْ وَأَوْلَادُكُمْ فِتْنَةٌ ۚ وَاللَّهُ عِندَهُ أَجْرٌ عَظِيمٌ"],[16,"فَاتَّقُوا اللَّهَ مَا اسْتَطَعْتُمْ وَاسْمَعُوا وَأَطِيعُوا وَأَنفِقُوا خَيْرًا لِّأَنفُسِكُمْ ۗ وَمَن يُوقَ شُحَّ نَفْسِهِ فَأُولَـٰئِكَ هُمُ الْمُفْلِحُونَ"],[17,"إِن تُقْرِضُوا اللَّهَ قَرْضًا حَسَنًا يُضَاعِفْهُ لَكُمْ وَيَغْفِرْ لَكُمْ ۚ وَاللَّهُ شَكُورٌ حَلِيمٌ"],[18,"عَالِمُ الْغَيْبِ وَالشَّهَادَةِ الْعَزِيزُ الْحَكِيمُ"]]
|
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
[{"id":"66","place_of_revelation":"madinah","transliterated_name":"At-Tahrim","translated_name":"The Prohibition","verse_count":12,"slug":"at-tahrim","codepoints":[1575,1604,1578,1581,1585,1610,1605]},[1,"يَا أَيُّهَا النَّبِيُّ لِمَ تُحَرِّمُ مَا أَحَلَّ اللَّهُ لَكَ ۖ تَبْتَغِي مَرْضَاتَ أَزْوَاجِكَ ۚ وَاللَّهُ غَفُورٌ رَّحِيمٌ"],[2,"قَدْ فَرَضَ اللَّهُ لَكُمْ تَحِلَّةَ أَيْمَانِكُمْ ۚ وَاللَّهُ مَوْلَاكُمْ ۖ وَهُوَ الْعَلِيمُ الْحَكِيمُ"],[3,"وَإِذْ أَسَرَّ النَّبِيُّ إِلَىٰ بَعْضِ أَزْوَاجِهِ حَدِيثًا فَلَمَّا نَبَّأَتْ بِهِ وَأَظْهَرَهُ اللَّهُ عَلَيْهِ عَرَّفَ بَعْضَهُ وَأَعْرَضَ عَن بَعْضٍ ۖ فَلَمَّا نَبَّأَهَا بِهِ قَالَتْ مَنْ أَنبَأَكَ هَـٰذَا ۖ قَالَ نَبَّأَنِيَ الْعَلِيمُ الْخَبِيرُ"],[4,"إِن تَتُوبَا إِلَى اللَّهِ فَقَدْ صَغَتْ قُلُوبُكُمَا ۖ وَإِن تَظَاهَرَا عَلَيْهِ فَإِنَّ اللَّهَ هُوَ مَوْلَاهُ وَجِبْرِيلُ وَصَالِحُ الْمُؤْمِنِينَ ۖ وَالْمَلَائِكَةُ بَعْدَ ذَٰلِكَ ظَهِيرٌ"],[5,"عَسَىٰ رَبُّهُ إِن طَلَّقَكُنَّ أَن يُبْدِلَهُ أَزْوَاجًا خَيْرًا مِّنكُنَّ مُسْلِمَاتٍ مُّؤْمِنَاتٍ قَانِتَاتٍ تَائِبَاتٍ عَابِدَاتٍ سَائِحَاتٍ ثَيِّبَاتٍ وَأَبْكَارًا"],[6,"يَا أَيُّهَا الَّذِينَ آمَنُوا قُوا أَنفُسَكُمْ وَأَهْلِيكُمْ نَارًا وَقُودُهَا النَّاسُ وَالْحِجَارَةُ عَلَيْهَا مَلَائِكَةٌ غِلَاظٌ شِدَادٌ لَّا يَعْصُونَ اللَّهَ مَا أَمَرَهُمْ وَيَفْعَلُونَ مَا يُؤْمَرُونَ"],[7,"يَا أَيُّهَا الَّذِينَ كَفَرُوا لَا تَعْتَذِرُوا الْيَوْمَ ۖ إِنَّمَا تُجْزَوْنَ مَا كُنتُمْ تَعْمَلُونَ"],[8,"يَا أَيُّهَا الَّذِينَ آمَنُوا تُوبُوا إِلَى اللَّهِ تَوْبَةً نَّصُوحًا عَسَىٰ رَبُّكُمْ أَن يُكَفِّرَ عَنكُمْ سَيِّئَاتِكُمْ وَيُدْخِلَكُمْ جَنَّاتٍ تَجْرِي مِن تَحْتِهَا الْأَنْهَارُ يَوْمَ لَا يُخْزِي اللَّهُ النَّبِيَّ وَالَّذِينَ آمَنُوا مَعَهُ ۖ نُورُهُمْ يَسْعَىٰ بَيْنَ أَيْدِيهِمْ وَبِأَيْمَانِهِمْ يَقُولُونَ رَبَّنَا أَتْمِمْ لَنَا نُورَنَا وَاغْفِرْ لَنَا ۖ إِنَّكَ عَلَىٰ كُلِّ شَيْءٍ قَدِيرٌ"],[9,"يَا أَيُّهَا النَّبِيُّ جَاهِدِ الْكُفَّارَ وَالْمُنَافِقِينَ وَاغْلُظْ عَلَيْهِمْ ۚ وَمَأْوَاهُمْ جَهَنَّمُ ۖ وَبِئْسَ الْمَصِيرُ"],[10,"ضَرَبَ اللَّهُ مَثَلًا لِّلَّذِينَ كَفَرُوا امْرَأَتَ نُوحٍ وَامْرَأَتَ لُوطٍ ۖ كَانَتَا تَحْتَ عَبْدَيْنِ مِنْ عِبَادِنَا صَالِحَيْنِ فَخَانَتَاهُمَا فَلَمْ يُغْنِيَا عَنْهُمَا مِنَ اللَّهِ شَيْئًا وَقِيلَ ادْخُلَا النَّارَ مَعَ الدَّاخِلِينَ"],[11,"وَضَرَبَ اللَّهُ مَثَلًا لِّلَّذِينَ آمَنُوا امْرَأَتَ فِرْعَوْنَ إِذْ قَالَتْ رَبِّ ابْنِ لِي عِندَكَ بَيْتًا فِي الْجَنَّةِ وَنَجِّنِي مِن فِرْعَوْنَ وَعَمَلِهِ وَنَجِّنِي مِنَ الْقَوْمِ الظَّالِمِينَ"],[12,"وَمَرْيَمَ ابْنَتَ عِمْرَانَ الَّتِي أَحْصَنَتْ فَرْجَهَا فَنَفَخْنَا فِيهِ مِن رُّوحِنَا وَصَدَّقَتْ بِكَلِمَاتِ رَبِّهَا وَكُتُبِهِ وَكَانَتْ مِنَ الْقَانِتِينَ"]]
|
[{"id":66,"name":"The Prohibition","numberOfAyah":12,"romanized":{"name":"At-Tahrim","slug":"at-tahrim"},"utf8":{"codepoints":[1575,1604,1578,1581,1585,1610,1605]}},[1,"يَا أَيُّهَا النَّبِيُّ لِمَ تُحَرِّمُ مَا أَحَلَّ اللَّهُ لَكَ ۖ تَبْتَغِي مَرْضَاتَ أَزْوَاجِكَ ۚ وَاللَّهُ غَفُورٌ رَّحِيمٌ"],[2,"قَدْ فَرَضَ اللَّهُ لَكُمْ تَحِلَّةَ أَيْمَانِكُمْ ۚ وَاللَّهُ مَوْلَاكُمْ ۖ وَهُوَ الْعَلِيمُ الْحَكِيمُ"],[3,"وَإِذْ أَسَرَّ النَّبِيُّ إِلَىٰ بَعْضِ أَزْوَاجِهِ حَدِيثًا فَلَمَّا نَبَّأَتْ بِهِ وَأَظْهَرَهُ اللَّهُ عَلَيْهِ عَرَّفَ بَعْضَهُ وَأَعْرَضَ عَن بَعْضٍ ۖ فَلَمَّا نَبَّأَهَا بِهِ قَالَتْ مَنْ أَنبَأَكَ هَـٰذَا ۖ قَالَ نَبَّأَنِيَ الْعَلِيمُ الْخَبِيرُ"],[4,"إِن تَتُوبَا إِلَى اللَّهِ فَقَدْ صَغَتْ قُلُوبُكُمَا ۖ وَإِن تَظَاهَرَا عَلَيْهِ فَإِنَّ اللَّهَ هُوَ مَوْلَاهُ وَجِبْرِيلُ وَصَالِحُ الْمُؤْمِنِينَ ۖ وَالْمَلَائِكَةُ بَعْدَ ذَٰلِكَ ظَهِيرٌ"],[5,"عَسَىٰ رَبُّهُ إِن طَلَّقَكُنَّ أَن يُبْدِلَهُ أَزْوَاجًا خَيْرًا مِّنكُنَّ مُسْلِمَاتٍ مُّؤْمِنَاتٍ قَانِتَاتٍ تَائِبَاتٍ عَابِدَاتٍ سَائِحَاتٍ ثَيِّبَاتٍ وَأَبْكَارًا"],[6,"يَا أَيُّهَا الَّذِينَ آمَنُوا قُوا أَنفُسَكُمْ وَأَهْلِيكُمْ نَارًا وَقُودُهَا النَّاسُ وَالْحِجَارَةُ عَلَيْهَا مَلَائِكَةٌ غِلَاظٌ شِدَادٌ لَّا يَعْصُونَ اللَّهَ مَا أَمَرَهُمْ وَيَفْعَلُونَ مَا يُؤْمَرُونَ"],[7,"يَا أَيُّهَا الَّذِينَ كَفَرُوا لَا تَعْتَذِرُوا الْيَوْمَ ۖ إِنَّمَا تُجْزَوْنَ مَا كُنتُمْ تَعْمَلُونَ"],[8,"يَا أَيُّهَا الَّذِينَ آمَنُوا تُوبُوا إِلَى اللَّهِ تَوْبَةً نَّصُوحًا عَسَىٰ رَبُّكُمْ أَن يُكَفِّرَ عَنكُمْ سَيِّئَاتِكُمْ وَيُدْخِلَكُمْ جَنَّاتٍ تَجْرِي مِن تَحْتِهَا الْأَنْهَارُ يَوْمَ لَا يُخْزِي اللَّهُ النَّبِيَّ وَالَّذِينَ آمَنُوا مَعَهُ ۖ نُورُهُمْ يَسْعَىٰ بَيْنَ أَيْدِيهِمْ وَبِأَيْمَانِهِمْ يَقُولُونَ رَبَّنَا أَتْمِمْ لَنَا نُورَنَا وَاغْفِرْ لَنَا ۖ إِنَّكَ عَلَىٰ كُلِّ شَيْءٍ قَدِيرٌ"],[9,"يَا أَيُّهَا النَّبِيُّ جَاهِدِ الْكُفَّارَ وَالْمُنَافِقِينَ وَاغْلُظْ عَلَيْهِمْ ۚ وَمَأْوَاهُمْ جَهَنَّمُ ۖ وَبِئْسَ الْمَصِيرُ"],[10,"ضَرَبَ اللَّهُ مَثَلًا لِّلَّذِينَ كَفَرُوا امْرَأَتَ نُوحٍ وَامْرَأَتَ لُوطٍ ۖ كَانَتَا تَحْتَ عَبْدَيْنِ مِنْ عِبَادِنَا صَالِحَيْنِ فَخَانَتَاهُمَا فَلَمْ يُغْنِيَا عَنْهُمَا مِنَ اللَّهِ شَيْئًا وَقِيلَ ادْخُلَا النَّارَ مَعَ الدَّاخِلِينَ"],[11,"وَضَرَبَ اللَّهُ مَثَلًا لِّلَّذِينَ آمَنُوا امْرَأَتَ فِرْعَوْنَ إِذْ قَالَتْ رَبِّ ابْنِ لِي عِندَكَ بَيْتًا فِي الْجَنَّةِ وَنَجِّنِي مِن فِرْعَوْنَ وَعَمَلِهِ وَنَجِّنِي مِنَ الْقَوْمِ الظَّالِمِينَ"],[12,"وَمَرْيَمَ ابْنَتَ عِمْرَانَ الَّتِي أَحْصَنَتْ فَرْجَهَا فَنَفَخْنَا فِيهِ مِن رُّوحِنَا وَصَدَّقَتْ بِكَلِمَاتِ رَبِّهَا وَكُتُبِهِ وَكَانَتْ مِنَ الْقَانِتِينَ"]]
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue