GithubHelp home page GithubHelp logo

textlint-rule-arabic-letter-forms's Introduction

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

textlint-rule-arabic-letter-forms's People

Contributors

aborazmeh avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.