npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

textlint-rule-arabic-letter-forms

v1.0.1

Published

a rule to find strict forms of letters (isolated, initial, medial, final) and normalize them

Downloads

17

Readme

textlint-rule-arabic-letter-forms Actions Status: test textlint rule

A rule to find strict forms of letters (isolated, initial, medial, final) and normalize them.

These forms usually cause problems with search as softwares don't look for other letter forms, for example try to look for كلمة and you won't probably get ﻛﻠﻤﺔ as a match:

  • the character ك (U+0643) ≠ (U+FEDB)
  • the character ل (U+0644) ≠ (U+FEE0)
  • the character م (U+0645) ≠ (U+FEE4)
  • the character ة (U+0629) ≠ (U+FE94)

Install

Install with npm:

npm install textlint-rule-arabic-letter-forms

Example

ﻗﺩ ﻴﺘﺭﺍﺀﻯ ﻓﻲ ﺍﻟﻭﻫﻠﺔ ﺍﻷﻭﻟﻰ ﺃﻥ ﺍﻟﺠﻴﻭﻟﻭﺠﻴﺎ، ﻭﺍﻟﻔﻴﺯﻴﺎﺀ ﻓﺭﻋﺎﻥ ﻤﻥ
ﺍﻟﻌﻠﻭﻡ ﺒﻌﻴﺩﺍﻥ ﺃﺤﺩﻫﻤﺎ ﻋﻥ ﺍﻵﺨﺭ. ﻟﻜﻥ ﺍﻟﺤﻘﻴﻘﺔ ﻏﻴﺭ ﺫﻟﻙ. ﻓﺎﻟﻔﻴﺯﻴﺎﺀ ،ﺘﺤﺩﻴﺩﺍﹰ،
ﻫﻲ ﺍﻟﺘﻲ ﺴﺎﻋﺩﺕ ﺍﻟﺠﻴﻭﻟﻭﺠﻴﻴﻥ ﻓﻲ ﺍﻟﻜﺸﻑ ﻋﻥ ﻋﺩﺩ ﻜﺒﻴﺭ ﻤﻥ ﻤﻜﺎﻤﻥ ﺍﻟﻨﺤﺎﺱ،
ﻭﺍﻟﺤﺩﻴﺩ، ﻭﺍﻟﻨﻔﻁ، ﻭﺍﻟﻔﺤﻡ، ﻭﺍﻟﻤﺎﺀ، ﻭﺍﻟﻤﻠﺢ، ﻭﻤﻭﺍﺩ ﺍﻟﺒﻨﺎﺀ، ﻭﻏﻴﺭﻫﺎ.
ﻜﺜﻴﺭﺍﹰ ﻤﺎ ﻴﺩﻫﺵ ﻤﻥ ﻴﻘﺭﺃ ﻜﺘﺎﺒﺎﹰ ﻓﻲ ﺍﻟﺠﻴﻭﻓﻴﺯﻴﺎﺀ ﻤﻥ ﺍﻟﻭﺍﻗﻌﺔ ﺍﻟﺘﺎﻟﻴﺔ:
ﺘﺘﺤﺩﺙ ﻫﺫﻩ ﺍﻟﻜﺘﺏ ﻋﻥ ﻋﻤﻠﻴﺎﺕ ﻭﻅﻭﺍﻫﺭ ﻴﺭﺼﺩﻫﺎ ﺍﻟﺠﻴﻭﻓﻴﺯﻴﺎﺌﻴﻭﻥ ﻓﻲ
ﺍﻟﻁﺒﻴﻌﺔ، ﻭﻟﻴﺱ ﻓﻲ ﻤﺨﺎﺒﺭ ﺍﻟﻔﻴﺯﻴﺎﺀ، ﺤﻴﺙ ﺍﻟﻅﻭﺍﻫﺭ ﺍﻟﻤﺨﺘﻠﻔﺔ ﻏﺎﻟﺒﺎﹰ ﻤﺎ ﺘﺤﺼل ﻋﻠﻰ
ﻨﺤﻭٍ ﻤﺘﺯﺍﻤﻥ، ﻭﻤﻌﻘﱠﺩ، ﻭﻤﺘﺩﺍﺨل. ﺜﻡ ﺇﻨﻪ ﻻﺒﺩ ﻫﻨﺎ ﻤﻥ ﺤلﱟ ﻟﻤﺎ ﻨﻭﺍﺠﻪ ﻤﻥ ﺃﻟﻐﺎﺯ.

Fixed text:

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

Usage

Via .textlintrc.json(Recommended)

{
    "rules": {
        "arabic-letter-forms": true
    }
}

Via CLI

textlint --rule arabic-letter-forms README.md

Fixable

textlint rule

textlint --rule arabic-letter-forms --fix README.md

Build

Builds source codes for publish to the lib folder. You can write ES2015+ source codes in src/ folder.

npm run build

Tests

Run test code in test folder. Test textlint rule by textlint-tester.

npm test

TODO

  • Some characters have Kasheeda (Tatweel) (like U+FE71) in their mapping, the Kasheeda should be probably removed, so the character will be on the previous letter as it should be.
  • Handle long ligatures (like U+FDFD, U+FDFA, U+FDFF), or maybe normalize them by an option.

License

MIT © aborazmeh