twitter-archive/RTLtextarea

Name: RTLtextarea

Owner: Twitter, Inc.

Owner: Twitter Archive

Description: Automatically detects RTL and configures a text input

Created: 2012-12-21 17:35:49.0

Updated: 2018-03-31 01:01:55.0

Pushed: 2015-10-29 21:52:21.0

Homepage:

Size: 394

Language: JavaScript

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

RTLtextarea Build Status

Automatically detects RTL (right-to-left) languages and appropriately configures the text input, without having to manually specify CSS direction or dir property on page load. Allows automatic switching between LTR and RTL languages.

What it does

This module will set the direction of a textarea to RTL when a threshold of RTL characters has been reached (rtlThreshold). It also applies Twitter- specific RTL rules regarding the placement of @ signs, # tags, and URLs.

Before:

before

After:

before

How to use

Bind keyup and keydown to RTLText.onTextChange. If you have initial text, call RTLText.setText(textarea, initial_string) to set markers on that initial text.

document).ready(function(){
var $textarea = $('#someTextarea');
$textarea.on('keyup', RTLText.onTextChange);
$textarea.on('keydown', RTLText.onTextChange);
RTLText.setText($textarea.get(0), $textarea.val());
;

When storing or submitting the text, make sure to extract the unicode markers first:

r textToSubmit = RTLText.cleanText($("#someTextarea").val());

Get the length of the text minus the control characters:

r textLength = RTLText.textLength($("#someTextarea").val());

Add markers to a string without affecting the text box:

r stringWithMarkers = RTLText.addRTLMarkers(string);
Versioning

We use semantic versioning, as described here: http://semver.org/

Releases are numbered and constructed with the following guidelines:

Testing

Tests use Jasmine and PhantomJS.

Before running the tests for the first time, install the required packages by typing: npm update.

After the packages are installed, you can run the tests by typing: npm test.

Authors

Naoki Takano

Esten Hurtle

License

Copyright 2012 Twitter, Inc.

Licensed under the MIT License


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.