Skip to content
This repository has been archived by the owner on Apr 2, 2023. It is now read-only.

Latest commit

 

History

History
72 lines (49 loc) · 2.76 KB

README.md

File metadata and controls

72 lines (49 loc) · 2.76 KB

pronouns.js

personal pronoun helper module. fork of pronoun.is.

pronouns.js aims to be an easy way to handle numerous personal pronouns in English. It remains open-ended to allow for myriad use cases. One possible application could be in a social media service in which users can add their pronoun(s) and the interface can refer to them properly.

Play the demo here.

Basic usage

npm i --save pronouns

const pronouns = require('pronouns');
const my = pronouns('they/them');

console.log(my.pronouns);
// ['they', 'them', 'their', 'theirs', 'themself']

console.log(my.subject);
// 'they'

console.log(pronouns.table);
// [
//   ["she", "her", "her", "hers", "herself"],
//   ["he", "him", "his", "his", "himself"],
//   ["they", "them", "their", "theirs", "themself"],
//   ["ze", "hir", "hir", "hirs", "hirself"],
//   ["ze", "zir", "zir", "zirs", "zirself"],
//   ["xey", "xem", "xyr", "xyrs", "xemself"],
//   ...
// ]

The database

The pronouns "database" is a JSON object located in resources/pronouns.json. The following table shows what each column means.

subject object possessive-determiner possessive-pronoun reflexive
they them their theirs themself

The code

index.js is the main program. pronouns is both a function you can call with a string parameter, and an object with references to the table and a few methods.

All of the following are valid inputs to the pronouns function:

  • she
  • he/him
  • ze/hir or they/.../themselves
  • she/her, they/them, it/its, or sie/hir

util.js has most of what was translated from the original Clojure code. These functions are mostly meant for accessing rows in a table or formatting strings and is not needed for typical users, but is exposed nonetheless as pronouns.util.

Tests

The test/ directory contains unit tests for index.js and util.js. Please run the tests and confirm that everything passes before merging changes, and please include tests with any new logic you introduce in a PR!

Contributing

Issues and pull/merge requests regarding the code are very much welcome! If you would like to request pronouns to be added to the table there is an issue template for doing so. You should also consider doing the same with the original repository.

To do

  • Autocomplete!
  • Interactive demos and examples
  • Parse even shorter multi-pronoun inputs like "they/she" or "she/him"
  • Handle "any/all", unknown, or badly formatted inputs better
    • Should default to they/them
  • Allow modifying an existing object (how would that work?)
  • More comprehensive documentation