pritishvaidya/read-time-estimate

View on GitHub
README.md

Summary

Maintainability
Test Coverage
# read-time-estimate [![Build Status](https://travis-ci.com/pritishvaidya/read-time-estimate.svg?branch=master)](https://travis-ci.com/pritishvaidya/read-time-estimate) [![CodeFactor](https://www.codefactor.io/repository/github/pritishvaidya/read-time-estimate/badge/master)](https://www.codefactor.io/repository/github/pritishvaidya/read-time-estimate/overview/master) [![Maintainability](https://api.codeclimate.com/v1/badges/c5858d4d925014c4c1a7/maintainability)](https://codeclimate.com/github/pritishvaidya/read-time-estimate/maintainability) [![Test Coverage](https://api.codeclimate.com/v1/badges/c5858d4d925014c4c1a7/test_coverage)](https://codeclimate.com/github/pritishvaidya/read-time-estimate/test_coverage) [![npm version](https://badge.fury.io/js/read-time-estimate.svg)](https://badge.fury.io/js/read-time-estimate) [![npm downloads](https://img.shields.io/npm/dt/read-time-estimate.svg)](https://npm-stat.com/charts.html?package=read-time-estimate&from=2018-02-17&to=2018-12-28)

> A more accurate Medium like read time estimate with images in progression and Chinese / Japanese / Korean character support.

## Features
- Calculates read time of images in decreasing progression with ability to provide custom image tags (Example - 12 seconds for the first image, 11 for the second, until images counted at 3 seconds)
- Calculates read time of the Chinese / Japanese / Korean characters separately
- Removes unwanted html tags to calculate read time more efficiently

## Install

```
$ npm i read-time-estimate --save
```

## Usage

```js
const readTimeEstimate = require('read-time-estimate');

const string = `<img src="test.png"/><div class="wrapper">
    This is a sample read time estimate with 中文/日文/韩文 text </div>`
                
const {
    humanizedDuration, // 'less than a minute'
    duration, // 0.23272727272727273
    totalWords, // 9
    wordTime, // 0.03272727272727273
    totalImages, // 1
    imageTime, //  0.2
    otherLanguageTimeCharacters, // 6
    otherLanguageTime, // 0.012
} = readTimeEstimate(string, 275, 12, 500, ['img', 'Image'])
```

### Input

| Variable  | Defaults | Type | Description  |
| :------------ | ---------------:|---------------:|:---------------|
| string | required | string | Input String |
| customWordTime | 275 | number | Speed of reading the text in Words per Minute |
| customImageTime | 12 | number | Speed of reading the image in seconds |
| chineseKoreanReadTime | 500 | number | Speed of reading the Chinese / Korean / Japanese characters in Characters per Minute |
| imageTags | `['img', 'Image']` | array | Custom Image tags to parse in the input string |


### Output

| Variable  | Type | Description  |
| :------------ | ---------------: | :---------------|
| humanizedDuration | string | Humanized Duration for the input string |
| duration | number | Actual Duration of the input string (in minutes) |
| totalWords | number | Number of words in the input string |
| wordTime | number | Read Time of the words in the input string (in minutes) |
| totalImages | number | Number of images in input string |
| imageTime | number | Read Time of the images in the input string (in minutes) |
| otherLanguageTimeCharacters | number | Chinese / Japanese / Korean language characters count |
| otherLanguageTime | number | Read Time of the Chinese / Japanese / Korean in the input string (in minutes) |

## Gatsby Plugin
[gatsby-read-time-estimate](https://github.com/pritishvaidya/gatsby-read-time-estimate)


### References 

#### Medium
 - [Help](https://help.medium.com/hc/en-us/articles/214991667-Read-time)
 - [Blog](https://blog.medium.com/read-time-and-you-bc2048ab620c)

## Contribution

 - [@pritishvaidya](mailto:pritishvaidya94@gmail.com) The main author.

## Questions

 Feel free to [contact me](mailto:pritishvaidya94@gmail.com) or [create an issue](https://github.com/pritishvaidya/read-time-estimate/issues/new)