alquran / tools
Various tools to parse and process Quran Text
Installs: 1 765
Dependents: 0
Suggesters: 0
Security: 0
Stars: 116
Watchers: 9
Forks: 29
Open Issues: 2
This package is auto-updated.
Last update: 2024-11-19 10:02:51 UTC
README
Quran Tools for Parsing Tajweed and Buck
These PHP tools are to be used with the AlQuran.cloud and GlobalQuran.com APIs. They are made available so you may get the most out of the APIs.
There's a React equivalent of this package @ https://github.com/aamirbhat382/Tajweed.
What do they contain
For now, a Tajweed and Buck helper. Each section is detailed below.
Install and Get Started
The tools add developer libraries you can use in your application. Install using composer:
composer require alquran/tools
Tajweed Example
To get tajweed text to become legible, use:
<?php require_once('vendor/autoload.php'); $parser = new \AlQuranCloud\Tools\Parser\Tajweed(); $html = $parser->parse($text); // $text is the output text of a Verse from quran-tajweed edition. For example: http://api.alquran.cloud/ayah/24:35/quran-tajweed. Also see data/tajweed.json.
Buckwalter Transliteration example
To get tajweed text to become legible, use:
<?php require_once('vendor/autoload.php'); $parser = new \AlQuranCloud\Tools\Parser\Buck(); $arabic = $parser->toArabic($text); // $text is the output text of a Verse from quran-buck edition. For example: http://api.alquran.cloud/ayah/24:35/quran-buck.
Tajweed Documentation
Buck (Buckwalter Transliteration) Documentation
See Buck Documentation.
Are there any known Issues
Yes, with the Tajweed parser. Webkit has a known bug that breaks Arabic with inline tags. There is an experimental fix in the Tajweed Parse class for this using the Zero Width Joiner (), but it still needs some work. I've manually tried this on some Ayahs and ZWJ is not smart enough to parse all the characters and join them properly, so this is not ideal. See See https://stackoverflow.com/questions/11155849/partially-colored-arabic-word-in-html
and https://bugs.webkit.org/show_bug.cgi?id=6148. The issue with parsing in Chrome seems to have been resolved with Chrome's new layout implementation (https://www.chromium.org/blink/layoutng). It has been tested on version 77.0.3865.90.
Credits
Most of this code is created using logic from the Global Quran website and codebase.