General functions for working with lines of Gurmukhi
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
docs
lib
test
.eslintignore
.eslintrc
.gitignore
.npmignore
LICENSE
README.hbs
README.md
example.js
index.d.ts
index.js
package-lock.json
package.json
release.sh
webpack.config.js

README.md

gurmukhi-utils

General utilities for working with Gurmukhi text data.

CircleCI Coveralls github npm license Try on RunKit

Want to speak with us?

Slack

Contents

Usage

The library can be imported into Node as below:

const { toUnicode, toAscii, firstLetters, transliterate, toShahmukhi } = require('gurmukhi-utils')

toUnicode('Koj')    // => ਖੋਜ
toAscii('ਖੋਜ')      // => Koj
firstLetters('hir hir hir gunI')  // => hhhg
firstLetters('ਹਰਿ ਹਰਿ ਹਰਿ ਗੁਨੀ')   // => ਹਹਹਗ
transliterate('hukmI hukmu clwey rwhu ]')  // => hukamee hukam chalaae raahu ||
toHindi('ਕੁਲ ਜਨ ਮਧੇ ਮਿਲੵੋਿ ਸਾਰਗ ਪਾਨ ਰੇ ॥')    // => कुल जन मधे मिल्यो सारग पान रे ॥
toShahmukhi('ਹਰਿ ਹਰਿ ਹਰਿ ਗੁਨੀ') // => هر هر هر گُنی

Additionally, the package is available for web use via unpkg CDN.

<script src="https://unpkg.com/gurmukhi-utils"></script>

Want to play around? Try gurmukhi-utils on RunKit

API

firstLetters(line, [stripNukta]) ⇒ String

Generates the first letters for a given ASCII or unicode Gurmukhi string. By default, the function will transform letters with bindi to their simple equivalent, for example, zaza to jaja (ਜ਼ => ਜ).

Returns: String - The first letters of each word in the provided Gurmukhi line.

Param Type Default Description
line String The line to generate the first letters for.
[stripNukta] Boolean true If true, replaces letters pair bindi (such as ਜ਼) with their equivalent without the bindi (ਜ). Also replaces open oora with closed oora.

Example (Unicode first letters no pair bindi/nukta)

firstLetters('ਗ਼ੈਰਿ ਹਮਦਿ ਹੱਕ ਨਿਆਇਦ ਬਰ ਜ਼ਬਾਨਮ ਹੀਚ ਗਾਹ') // => ਗਹਹਨਬਜਹਗ

Example (Unicode first letters with pair bindi/nukta)

firstLetters('ਗ਼ੈਰਿ ਹਮਦਿ ਹੱਕ ਨਿਆਇਦ ਬਰ ਜ਼ਬਾਨਮ ਹੀਚ ਗਾਹ', false) // => ਗ਼ਹਹਨਬਜ਼ਹਗ

Example (ASCII first letters no pair bindi/nukta)

firstLetters('ijs no ik®pw krih iqin nwmu rqnu pwieAw ]') // => jnkkqnrp
firstLetters('iZir&qym sMdUk drIXw AmIk ]') // => gsdA

Example (ASCII first letters with pair bindi/nukta)

firstLetters('iZir&qym sMdUk* drIXw AmIk* ]', false) // => Zsda

toAscii(text) ⇒ String

Converts Gurmukhi unicode text to ASCII, used GurmukhiAkhar font.

Returns: String - An ASCII representation of the provided unicode Gurmukhi string.

Param Type Description
text String The unicode text to convert.

Example

toAscii('ਹਮਾ ਸਾਇਲਿ ਲੁਤਫ਼ਿ ਹਕ ਪਰਵਰਸ਼ ॥') // => hmw swieil luqi& hk prvrS ]
toAscii('ਸੁ ਬੈਠਿ ਇਕੰਤ੍ਰ ॥੫੭੮॥') // => su bYiT iekMqR ]578]

toEnglish(line) ⇒ String

Transliterates a line from Unicode Gurmukhi to english. Currently supports the ,, ;, . vishraam characters.

Returns: String - The English transliteration of the provided Gurmukhi line.

Param Type Description
line String The Gurmukhi Unicode line to transliterate.

Example

toEnglish('ਹੁਕਮੀ ਹੁਕਮੁ ਚਲਾਏ ਰਾਹੁ ॥') // => hukamee hukam chalaae raahu ||

Example

toEnglish('ਭਾਂਡਾ ਭਾਉ ਅੰਮ੍ਰਿਤੁ ਤਿਤੁ ਢਾਲਿ ॥') // => bhaa(n)ddaa bhaau anmrit tit ddaal ||

toHindi(text) ⇒ String

Transliterates Unicode Gurmukhi text to Hindi (Devanagari script).

Returns: String - A Hindi transliteration of the provided Unicode Gurmukhi string.

Param Type Description
text String The Unicode Gurmukhi text to convert.

Example

toHindi('ਕੁਲ ਜਨ ਮਧੇ ਮਿਲੵੋਿ ਸਾਰਗ ਪਾਨ ਰੇ ॥') // => कुल जन मधे मिल्यो सारग पान रे ॥
toHindi('ਸੁ ਬੈਠਿ ਇਕੰਤ੍ਰ ॥੫੭੮॥') // => सु बैठ इकंत्र ॥५७८॥

toShahmukhi(text) ⇒ String

Transliterates Unicode Gurmukhi text to the Shahmukhi script.

Returns: String - A Shahmukhi transliteration of the provided Unicode Gurmukhi string.

Param Type Description
text String The Unicode Gurmukhi text to convert.

Example

toShahmukhi('ਹਮਾ ਸਾਇਲਿ ਲੁਤਫ਼ਿ ਹਕ ਪਰਵਰਸ਼ ॥') // => هما ساِال لُتف هک پرورش ۔۔
toShahmukhi('ਸੁ ਬੈਠਿ ਇਕੰਤ੍ਰ ॥੫੭੮॥') // => سُ بَےٹھ ِاکںتر ۔۔۵۷۸۔۔

toUnicode(text) ⇒ String

Converts ASCII text used in the GurmukhiAkhar font to Unicode.

Returns: String - A unicode representation of the provided ASCII Gurmukhi string.

Param Type Description
text String The ASCII text to convert.

Example

toUnicode('kul jn mDy imil´o swrg pwn ry ]') // => ਕੁਲ ਜਨ ਮਧੇ ਮਿਲੵੋਿ ਸਾਰਗ ਪਾਨ ਰੇ ॥
toUnicode('su bYiT iekMqR ]578]') // => ਸੁ ਬੈਠਿ ਇਕੰਤ੍ਰ ॥੫੭੮॥

Contributing

We're happy to accept suggestions and pull requests!

To get started, clone this repo and run npm install inside this directory.

This repository follows the Airbnb's Javascript Style Guide, with a few minor modifications. Notably, spaces should be included inside parentheses and brackets (weird, right!). An ESLint file is provided, and your code will automatically be checked on-commit for style. It is recommended to install an ESLint plugin for your editor (VS Code's ESLint plugin works out of the box), so you can receive linter suggestions as you type.

When writing commit messages, please follow the seven rules. Markdown and HTML JSDoc documentation is generated automatically, on commit, however if you'd like to preview any changes to documentation, npm run build-docs will update README.md and the files in docs/. README.md should not be edited, instead apply modifications to README.hbs.

The general workflow for contributing:

  • Fork/create a new branch.
  • Write or update existing tests with expected results
  • Implement functions/changes
  • Add JSDoc function documentation and examples.
  • Run tests with npm test and ensure they all pass. Testing is done with the mocha testing framework.
  • Create a pull request with the changes.

Note to contributors with push access to master: Any commits or merge commits containing the strings #Major, #Minor, #Patch (case-sensitive) will trigger an automatic npm release with the respective semver bump.