Estimated Reading Time for Blog Posts, Articles, etc. https://github.com/ethauvin/readingtime
Find a file
2020-09-08 23:45:42 -07:00
.circleci Cleanup. 2020-07-27 03:40:15 -07:00
.github/workflows Cleanup. 2020-07-27 03:40:15 -07:00
.idea Upgraded to Gradle 6.6 and Kotlin 1.4.0. 2020-08-18 00:17:41 -07:00
config/detekt Added detekt. 2020-07-23 10:50:52 -07:00
examples Updated to Gradle 6.6.1. 2020-09-08 23:45:42 -07:00
gradle/wrapper Upgraded to Gradle 6.6 and Kotlin 1.4.0. 2020-08-18 00:17:41 -07:00
src Upgraded to Gradle 6.6 and Kotlin 1.4.0. 2020-08-18 00:17:41 -07:00
.editorconfig Initial commit. 2020-07-23 01:47:35 -07:00
.gitattributes Initial commit. 2020-07-23 01:47:35 -07:00
.gitignore Initial commit. 2020-07-23 01:47:35 -07:00
.gitlab-ci.yml Cleanup. 2020-07-27 03:40:15 -07:00
.travis.yml Cleanup. 2020-07-27 03:40:15 -07:00
bitbucket-pipelines.yml Initial Bitbucket Pipelines configuration 2020-07-26 05:44:06 +00:00
build.gradle.kts Updated examples to use Kotlin 1.4.0. 2020-08-21 07:31:22 -07:00
gradlew Upgraded to Gradle 6.6 and Kotlin 1.4.0. 2020-08-18 00:17:41 -07:00
gradlew.bat Upgraded to Gradle 6.6 and Kotlin 1.4.0. 2020-08-18 00:17:41 -07:00
LICENSE.TXT Added license and copyright. 2020-07-23 11:44:43 -07:00
pom.xml Upgraded to Gradle 6.6 and Kotlin 1.4.0. 2020-08-18 00:17:41 -07:00
README.md Updated examples to use Kotlin 1.4.0. 2020-08-21 07:31:22 -07:00
settings.gradle.kts Initial commit. 2020-07-23 01:47:35 -07:00

License (3-Clause BSD) release Maven Central Download

Known Vulnerabilities Quality Gate Status Build Status CircleCI

Estimated Reading Time for Blog Posts, Articles, etc.

A simple Kotlin/Java implementation of Medium's Read Time calculation.

Examples (TL;DR)

import net.thauvin.erik.readingtime.ReadingTime

// ...

val rt = ReadingTime(htmlText)
println(rt.calcEstimatedReadTime()) // eg: 2 min read

To get the estimated reading time in seconds use the calcReadingTimeInSec() function.

Properties

The following properties are available:

ReadingTime(
    text = "some_text",
    wpm = 275,
    postfix = "min read",
    plural = "min read",
    excludeImages = false
)

Property Description
text The text to be evaluated.
wpm The words per minute reading average.
postfix The value to be appended to the reading time.
plural The value to be appended if the reading time is more than 1 minute.
excludeImages Images are excluded from the reading time when set.

Functions

A couple of useful functions are also available:

ReadingTime.wordCount(htmlText) // Returns the count of words. (HTML stripped)
ReadingTime.imgCount(htmlText) // Returns the count of images. (HTML img tags)

JSP

A JSP tag is also available for easy incorporation into web applications:

<%@taglib uri="https://erik.thauvin.net/taglibs/readingtime" prefix="t"%>
<t:readingtime
    postfix="min read"
    plural="min read"
    excludeImages="false"
    wpm="275">some_text</t:readingtime>

None of the attributes are required.

Gradle, Maven, etc.

To use with Gradle, include the following dependency in your build file:

repositories {
    jcenter()
}

dependencies {
    implementation("net.thauvin.erik:readingtime:0.9.0")
}

Instructions for using with Maven, Ivy, etc. can be found on Maven Central.