[
  {
    "path": ".gitignore",
    "content": ".DS_Store\n.idea/*\n"
  },
  {
    "path": "LICENSE.md",
    "content": "The MIT License\n\nCopyright (c) 2013 Michael Lynch\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE."
  },
  {
    "path": "README.md",
    "content": "# Reading Time\n[![CDNJS](https://img.shields.io/cdnjs/v/reading-time.svg)](https://cdnjs.com/libraries/reading-time)\n\nInspired by [Medium](http://medium.com), Reading Time is a simple, lightweight jQuery plugin used to display an estimated time to read some text.\n\n<a href=\"http://michael-lynch.github.io/reading-time/\" target=\"_blank\">See a demo</a>\n\n<a href=\"http://michael-lynch.github.io/reading-time/remote.html\" target=\"_blank\">See a demo using a remote file</a>\n\n<a href=\"http://michael-lynch.github.io/reading-time/remote-multiple.html\" target=\"_blank\">See a demo using multiple remote files</a>\n\n## Instructions\n\nInclude jQuery and the plugin in the head or footer of your page.\n\n```html\n<script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js\"></script>\n\n<script src=\"/js/plugins/readingtime.js\"></script>\n```\n\nCreate an element with the class of 'eta' where the estimated reading time will display.\n\n```html\n<article>\n\t<div class=\"eta\"></div>\n</article>\n```\n\nOptionally you can also create an element with whatever class or ID you want to display the total word count.\n\n<em>The word count will only be displayed if you set the wordCountTarget parameter when initiating the plugin (see below).</em>\n\n```html\n<article>\n\t<div class=\"eta\"></div>\n\t<div class=\"word-count\"></div>\n</article>\n```\n\nInitialize the plugin targeting the class, ID or element that contains the text in which you want to estimate the reading time of.\n\n```js\n$('article').readingTime();\n```\n\n#### Options\n\n<ol>\n\n<li>\nreadingTimeAsNumber: boolean\n<br />If you want to take reading time as integer, you can use this (default: 'false').\n</li>\n\n<li>\nreadingTimeTarget: \"id / class / element\"\n<br />A string that defines the ID, class or element that will store the estimated reading time (default: 'eta').\n</li>\n\n<li>wordCountTarget: \"id / class / element\"\n<br />A string that defines the ID, class or element that will store the total word count (default: '').\n</li>\n\n<li>remotePath: \"path\"\n<br />A string that indicates the path to the remote file (default: null).\n</li>\n\n<li>remoteTarget: \"id / class / element\"\n<br />A string that defines the ID, class or element in the remote file that contains the text in which you want to estimate the reading time of (default: null).\n</li>\n\n<li>wordsPerMinute: integer\n<br />An integer that defines the words per minute at which to calculate the estimated reading time (default: 270).\n</li>\n\n<li>round: boolean\n<br />A boolean value that indicates whether or not the estimated reading time should be rounded to the closest minute (default: true).\n</li>\n\n<li>lang: \"en / fr / de / es / nl / sk / cz / ru / zh / kr\"\n<br />A two letter string that indicates the language to be used (default: \"en\").\n</li>\n\n<li>lessThanAMinuteString: string\n<br />A string that changes the default \"Less than a minute\" copy (default: '').\n</li>\n\n<li>prependTimeString: string\n<br />A string that is prepended before the estimated reading time (default: '').\n</li>\n\n<li>prependWordString: string\n<br />A string that is prepended before the total word count (default: '').\n</li>\n\n<li>success: function(data) {}\n<br />A callback function that runs if the plugin was successful (default: `function()`).\n</li>\n\n<li>error: function(data) {}\n<br />A callback function that runs if the plugin fails (default: `function(message)`).\n</li>\n\n</ol>\n\n##### Example:\n\n```js\n$(function() {\n\n\t$('article').readingTime({\n\t\treadingTimeAsNumber: true,\n\t\treadingTimeTarget: $('.reading-time'),\n\t\twordsPerMinute: 275,\n\t\tround: false,\n\t\tlang: 'fr',\n\t\tsuccess: function(data) {\n\t\t\tconsole.log(data);\n\t\t},\n\t\terror: function(data) {\n\t\t\tconsole.log(data.error);\n\t\t\t$('.reading-time').remove();\n\t\t}\n\t});\n});\n```\n\n##### Multiple Articles\n\nOften you will have multiple articles or excerpts on a single page, in which case you would want to iterate through each.\n\n```js\n$('article').each(function() {\n\n\tlet _this = $(this);\n\n\t_this.readingTime({\n\t\treadingTimeTarget: _this.find('.reading-time')\n\t});\n});\n```\n\n##### Using a Remote File\n\nIf you want to display the estimated reading time of copy that lives in a remote file, you would initialize the plugin and use the remotePath and remoteTarget options.\n\nIn this case, the plugin would display the amount of text contained in the element with the class of \"my-article\" in the file called \"remote.html.\"\n\n```js\n$('article').readingTime({\n\tremotePath: 'path/to/remote/file.html',\n\tremoteTarget: '.my-article'\n});\n```\n\n<a href=\"http://michael-lynch.github.io/reading-time/remote.html\" target=\"_blank\">See a demo using a remote file</a>\n\n##### Using Multiple Remote Files\n\nIf you want to display the estimated reading time of copy for multiple articles that live in remote files, you would want to iterate through each article on your page and use data attributes to declare the file and target for each article. Be sure to initialize the plugin on the body and use the remotePath and remoteTarget options.\n\nHere is what your markup might look like <em>(notice the data-file and data-target attributes on each article)</em>:\n\n```html\n<!-- first article excerpt -->\n<article data-file=\"articles/a.html\" data-target=\"article\">\n\n\t<h1>Magna Lorem Quam Nullam</h1>\n\n\t<p>By: Mike Lynch</p>\n\n\t<!-- reading time and word count -->\n\t<p><span class=\"eta\"></span> (<span class=\"words\"></span> words)</p>\n\n\t<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Curabitur blandit tempus porttitor. Nulla vitae elit libero, a pharetra augue. Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>\n\n\t<a href=\"articles/a.html\" class=\"btn\">Read more</a>\n\n</article>\n\n<!-- second article excerpt -->\n<article data-file=\"articles/b.html\" data-target=\"article\">\n\n\t<h1>Justo Cursus Inceptos Ipsum</h1>\n\n\t<p>By: Mike Lynch</p>\n\n\t<!-- reading time and word count -->\n\t<p><span class=\"eta\"></span> (<span class=\"words\"></span> words)</p>\n\n\t<p>Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Aenean\n\tlacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>\n\n\t<a href=\"articles/b.html\" class=\"btn\">Read more</a>\n\n</article>\n\n<!-- third article excerpt -->\n<article data-file=\"articles/c.html\" data-target=\"article\">\n\n\t<h1>Sem Vehicula Dapibus Malesuada</h1>\n\n\t<p>By: Mike Lynch</p>\n\n\t<!-- reading time and word count -->\n\t<p><span class=\"eta\"></span> (<span class=\"words\"></span> words)</p>\n\n\t<p>Nullam quis risus eget urna mollis ornare vel eu leo. Nulla vitae elit libero, a pharetra augue. Maecenas faucibus mollis interdum. Nullam id dolor id nibh\n\tultricies vehicula ut id elit. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>\n\n\t<a href=\"articles/c.html\" class=\"btn\">Read more</a>\n\n</article>\n```\n\nHere is what your JS would look like:\n\n```js\n$('article').each(function() {\n\n\tlet _this = $(this);\n\n\t_this.readingTime({\n\t\treadingTimeTarget: _this.find('.eta'),\n\t\twordCountTarget: _this.find('.words'),\n\t\tremotePath: _this.attr('data-file'),\n\t\tremoteTarget: _this.attr('data-target')\n\t});\n});\n```\n\n<a href=\"http://michael-lynch.github.io/reading-time/remote-multiple.html\" target=\"_blank\">See a demo using multiple remote files</a>\n"
  },
  {
    "path": "bower.json",
    "content": "{\n\t\"name\": \"reading-time\",\n\t\"version\": \"2.0.0\",\n\t\"homepage\": \"https://github.com/michael-lynch/reading-time\",\n\t\"authors\": [\n\t\t\"Michael Lynch <mikethomaslynch@gmail.com>\"\n\t],\n\t\"description\": \"A simple, lightweight jQuery plugin used to display an estimated time to read some text.\",\n\t\"main\": \"src/readingtime.js\",\n\t\"keywords\": [\n\t\t\"reading\",\n\t\t\"time\",\n\t\t\"estimated\",\n\t\t\"eta\"\n\t],\n\t\"license\": \"MIT\",\n\t\"ignore\": [\n\t\t\"**/.*\",\n\t\t\"node_modules\",\n\t\t\"bower_components\",\n\t\t\"test\",\n\t\t\"tests\"\n\t]\n}\n"
  },
  {
    "path": "demo/articles/a.html",
    "content": "<!doctype html>\n\n<html>\n\n\t<head>\n\t\n\t\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\">\n\t\t\n\t\t<meta charset=\"utf-8\">\n\t\n\t\t<title>Reading Time jQuery Plugin</title>\n\t\t\n\t\t<meta name=\"description\" content=\"A simple, lightweight jQuery plugin used to display an estimated time to read some text.\">\n\t\t\n\t\t<meta name=\"author\" content=\"http://michaelynch.com\">\n\t\n\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1\">\n\t\t\n\t\t<!-- for pesentation only -->\n\t\t<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"../../src/css/style.css\">\n\t\t\n\t\t</style>\n\t\t\n\t</head>\n\n\t<body lang=\"en\">\n\n\t\t<article class=\"article\">\n\t\t\n\t\t\t<h1>Magna Lorem Quam Nullam</h1>\n\t\t\t\n\t\t\t<p><em>By: Mike Lynch</em></p>\n\t\t\t\n\t\t\t<p><small><span class=\"eta\"></span> (<span class=\"words\"></span> words)</small></p>\n\t\n\t\t\t<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Curabitur blandit tempus porttitor. Nulla vitae elit libero, a pharetra augue. Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>\n\n\t\t\t<p>Donec id elit non mi porta gravida at eget metus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. \n\t\t\tCurabitur blandit tempus porttitor. Aenean lacinia bibendum nulla sed consectetur. Etiam porta sem malesuada magna mollis euismod.</p>\n\n\t\t\t<p>Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Curabitur blandit tempus porttitor. Sed posuere consectetur est at lobortis. Donec \n\t\t\tullamcorper nulla non metus auctor fringilla. Cras mattis consectetur purus sit amet fermentum.</p>\n\n\t\t\t<p>Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nullam quis risus eget urna \n\t\t\tmollis ornare vel eu leo. Donec sed odio dui. Aenean lacinia bibendum nulla sed consectetur. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Integer posuere erat a ante \n\t\t\tvenenatis dapibus posuere velit aliquet.</p>\n\t\t\t\n\t\t</article>\n\t\t\n\t\t<script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js\"></script>\n\t\n\t\t<script type=\"text/javascript\">\n\t\tif (typeof jQuery == 'undefined') {\n\t\t    document.write(unescape(\"%3Cscript src='../src/lib/jquery.1.9.1.min.js' type='text/javascript'%3E%3C/script%3E\"));\n\t\t}\n\t\t</script>\n\t\t\n\t\t<script src=\"../../src/readingTime.js\"></script>\n\t\t\n\t\t<script>\n\t\t\n\t\t\t$(function() {\n\t\t\t\t\n\t\t\t\t$('article').readingTime({\n\t\t\t\t\twordCountTarget: '.words'\n\t\t\t\t});\n\t\t\t\t\n\t\t\t});\n\t\t\n\t\t</script>\n\n\t</body>\n\t\n</html>"
  },
  {
    "path": "demo/articles/b.html",
    "content": "<!doctype html>\n\n<html>\n\n\t<head>\n\t\n\t\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\">\n\t\t\n\t\t<meta charset=\"utf-8\">\n\t\n\t\t<title>Reading Time jQuery Plugin</title>\n\t\t\n\t\t<meta name=\"description\" content=\"A simple, lightweight jQuery plugin used to display an estimated time to read some text.\">\n\t\t\n\t\t<meta name=\"author\" content=\"http://michaelynch.com\">\n\t\n\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1\">\n\t\t\n\t\t<!-- for pesentation only -->\n\t\t<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"../../src/css/style.css\">\n\t\t\n\t\t</style>\n\t\t\n\t</head>\n\n\t<body lang=\"en\">\n\n\t\t<article class=\"article\">\n\t\t\n\t\t\t<h1>Justo Cursus Inceptos Ipsum</h1>\n\t\t\t\n\t\t\t<p><em>By: Mike Lynch</em></p>\n\t\t\t\n\t\t\t<p><small><span class=\"eta\"></span> (<span class=\"words\"></span> words)</small></p>\n\t\n\t\t\t<p>Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Aenean \n\t\t\tlacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>\n\n\t\t\t<p>Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Aenean lacinia bibendum nulla sed consectetur. Integer posuere erat a ante venenatis \n\t\t\tdapibus posuere velit aliquet. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>\n\n\t\t\t<p>Vestibulum id ligula porta felis euismod semper. Sed posuere consectetur est at lobortis. Nullam id dolor id nibh ultricies vehicula ut id elit. \n\t\t\tAenean lacinia bibendum nulla sed consectetur. Donec id elit non mi porta gravida at eget metus. Curabitur blandit tempus porttitor. Cum sociis natoque \n\t\t\tpenatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n\n\t\t\t<p>Maecenas sed diam eget risus varius blandit sit amet non magna. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Vestibulum id \n\t\t\tligula porta felis euismod semper. Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>\n\t\t\t\n\t\t\t<p>Leo risus, porta ac consectetur ac, vestibulum at eros. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Aenean \n\t\t\tlacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>\n\n\t\t\t<p>Risus, porta ac consectetur ac, vestibulum at eros. Aenean lacinia bibendum nulla sed consectetur. Integer posuere erat a ante venenatis \n\t\t\tdapibus posuere velit aliquet. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>\n\t\t\t\n\t\t\t<p>Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Aenean \n\t\t\tlacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>\n\n\t\t\t<p>Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Aenean lacinia bibendum nulla sed consectetur. Integer posuere erat a ante venenatis \n\t\t\tdapibus posuere velit aliquet. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>\n\n\t\t\t<p>Vestibulum id ligula porta felis euismod semper. Sed posuere consectetur est at lobortis. Nullam id dolor id nibh ultricies vehicula ut id elit. \n\t\t\tAenean lacinia bibendum nulla sed consectetur. Donec id elit non mi porta gravida at eget metus. Curabitur blandit tempus porttitor. Cum sociis natoque \n\t\t\tpenatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n\n\t\t\t<p>Maecenas sed diam eget risus varius blandit sit amet non magna. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Vestibulum id \n\t\t\tligula porta felis euismod semper. Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>\n\t\t\t\n\t\t\t<p>Leo risus, porta ac consectetur ac, vestibulum at eros. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Aenean \n\t\t\tlacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>\n\n\t\t\t<p>Risus, porta ac consectetur ac, vestibulum at eros. Aenean lacinia bibendum nulla sed consectetur. Integer posuere erat a ante venenatis \n\t\t\tdapibus posuere velit aliquet. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>\n\t\t\t\n\t\t</article>\n\t\t\n\t\t<script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js\"></script>\n\t\n\t\t<script type=\"text/javascript\">\n\t\tif (typeof jQuery == 'undefined') {\n\t\t    document.write(unescape(\"%3Cscript src='../src/lib/jquery.1.9.1.min.js' type='text/javascript'%3E%3C/script%3E\"));\n\t\t}\n\t\t</script>\n\t\t\n\t\t<script src=\"../../src/readingTime.js\"></script>\n\t\t\n\t\t<script>\n\t\t\n\t\t\t$(function() {\n\t\t\t\t\n\t\t\t\t$('article').readingTime({\n\t\t\t\t\twordCountTarget: '.words'\n\t\t\t\t});\n\t\t\t\t\n\t\t\t});\n\t\t\n\t\t</script>\n\n\t</body>\n\t\n</html>"
  },
  {
    "path": "demo/articles/c.html",
    "content": "<!doctype html>\n\n<html>\n\n\t<head>\n\t\n\t\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\">\n\t\t\n\t\t<meta charset=\"utf-8\">\n\t\n\t\t<title>Reading Time jQuery Plugin</title>\n\t\t\n\t\t<meta name=\"description\" content=\"A simple, lightweight jQuery plugin used to display an estimated time to read some text.\">\n\t\t\n\t\t<meta name=\"author\" content=\"http://michaelynch.com\">\n\t\n\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1\">\n\t\t\n\t\t<!-- for pesentation only -->\n\t\t<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"../../src/css/style.css\">\n\t\t\n\t\t</style>\n\t\t\n\t</head>\n\n\t<body lang=\"en\">\n\n\t\t<article class=\"article\">\n\t\t\n\t\t\t<h1>Sem Vehicula Dapibus Malesuada</h1>\n\t\t\t\n\t\t\t<p><em>By: Mike Lynch</em></p>\n\t\t\t\n\t\t\t<p><small><span class=\"eta\"></span> (<span class=\"words\"></span> words)</small></p>\n\t\n\t\t\t<p>Nullam quis risus eget urna mollis ornare vel eu leo. Nulla vitae elit libero, a pharetra augue. Maecenas faucibus mollis interdum. Nullam id dolor id nibh \n\t\t\tultricies vehicula ut id elit. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>\n\n\t\t\t<p>Etiam porta sem malesuada magna mollis euismod. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Aenean eu leo quam. Pellentesque ornare \n\t\t\tsem lacinia quam venenatis vestibulum. Vestibulum id ligula porta felis euismod semper. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur \n\t\t\tridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>\n\n\t\t\t<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. \n\t\t\tVivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum \n\t\t\tmassa justo sit amet risus. Nullam quis risus eget urna mollis ornare vel eu leo. Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque \n\t\t\tpenatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n\n\t\t\t<p>Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Praesent commodo \n\t\t\tcursus magna, vel scelerisque nisl consectetur et. Sed posuere consectetur est at lobortis.</p>\n\t\t\t\n\t\t\t<p>Nullam quis risus eget urna mollis ornare vel eu leo. Nulla vitae elit libero, a pharetra augue. Maecenas faucibus mollis interdum. Nullam id dolor id nibh \n\t\t\tultricies vehicula ut id elit. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>\n\n\t\t\t<p>Etiam porta sem malesuada magna mollis euismod. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Aenean eu leo quam. Pellentesque ornare \n\t\t\tsem lacinia quam venenatis vestibulum. Vestibulum id ligula porta felis euismod semper. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur \n\t\t\tridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>\n\n\t\t\t<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. \n\t\t\tVivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum \n\t\t\tmassa justo sit amet risus. Nullam quis risus eget urna mollis ornare vel eu leo. Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque \n\t\t\tpenatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n\n\t\t\t<p>Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Praesent commodo \n\t\t\tcursus magna, vel scelerisque nisl consectetur et. Sed posuere consectetur est at lobortis.</p>\n\t\t\t\n\t\t\t<p>Nullam quis risus eget urna mollis ornare vel eu leo. Nulla vitae elit libero, a pharetra augue. Maecenas faucibus mollis interdum. Nullam id dolor id nibh \n\t\t\tultricies vehicula ut id elit. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>\n\n\t\t\t<p>Etiam porta sem malesuada magna mollis euismod. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Aenean eu leo quam. Pellentesque ornare \n\t\t\tsem lacinia quam venenatis vestibulum. Vestibulum id ligula porta felis euismod semper. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur \n\t\t\tridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>\n\n\t\t\t<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. \n\t\t\tVivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum \n\t\t\tmassa justo sit amet risus. Nullam quis risus eget urna mollis ornare vel eu leo. Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque \n\t\t\tpenatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n\n\t\t\t<p>Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Praesent commodo \n\t\t\tcursus magna, vel scelerisque nisl consectetur et. Sed posuere consectetur est at lobortis.</p>\n\t\t\t\n\t\t\t<p>Nullam quis risus eget urna mollis ornare vel eu leo. Nulla vitae elit libero, a pharetra augue. Maecenas faucibus mollis interdum. Nullam id dolor id nibh \n\t\t\tultricies vehicula ut id elit. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>\n\n\t\t\t<p>Etiam porta sem malesuada magna mollis euismod. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Aenean eu leo quam. Pellentesque ornare \n\t\t\tsem lacinia quam venenatis vestibulum. Vestibulum id ligula porta felis euismod semper. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur \n\t\t\tridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>\n\n\t\t\t<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. \n\t\t\tVivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum \n\t\t\tmassa justo sit amet risus. Nullam quis risus eget urna mollis ornare vel eu leo. Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque \n\t\t\tpenatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n\n\t\t\t<p>Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Praesent commodo \n\t\t\tcursus magna, vel scelerisque nisl consectetur et. Sed posuere consectetur est at lobortis.</p>\n\t\t\t\n\t\t\t<p>Nullam quis risus eget urna mollis ornare vel eu leo. Nulla vitae elit libero, a pharetra augue. Maecenas faucibus mollis interdum. Nullam id dolor id nibh \n\t\t\tultricies vehicula ut id elit. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>\n\n\t\t\t<p>Etiam porta sem malesuada magna mollis euismod. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Aenean eu leo quam. Pellentesque ornare \n\t\t\tsem lacinia quam venenatis vestibulum. Vestibulum id ligula porta felis euismod semper. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur \n\t\t\tridiculus mus. Nulla vitae elit libero, a pharetra augue.</p>\n\n\t\t\t<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. \n\t\t\tVivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum \n\t\t\tmassa justo sit amet risus. Nullam quis risus eget urna mollis ornare vel eu leo. Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque \n\t\t\tpenatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>\n\n\t\t\t<p>Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Praesent commodo \n\t\t\tcursus magna, vel scelerisque nisl consectetur et. Sed posuere consectetur est at lobortis.</p>\n\t\t\t\n\t\t</article>\n\t\t\n\t\t<script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js\"></script>\n\t\n\t\t<script type=\"text/javascript\">\n\t\tif (typeof jQuery == 'undefined') {\n\t\t    document.write(unescape(\"%3Cscript src='../src/lib/jquery.1.9.1.min.js' type='text/javascript'%3E%3C/script%3E\"));\n\t\t}\n\t\t</script>\n\t\t\n\t\t<script src=\"../../src/readingTime.js\"></script>\n\t\t\n\t\t<script>\n\t\t\n\t\t\t$(function() {\n\t\t\t\t\n\t\t\t\t$('article').readingTime({\n\t\t\t\t\twordCountTarget: '.words'\n\t\t\t\t});\n\t\t\t\t\n\t\t\t});\n\t\t\n\t\t</script>\n\n\t</body>\n\t\n</html>"
  },
  {
    "path": "demo/index.html",
    "content": "<!doctype html>\n\n<html>\n\n\t<head>\n\n\t\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\">\n\n\t\t<meta charset=\"utf-8\">\n\n\t\t<title>Reading Time jQuery Plugin</title>\n\n\t\t<meta name=\"description\" content=\"A simple, lightweight jQuery plugin used to display an estimated time to read some text.\">\n\n\t\t<meta name=\"author\" content=\"http://michaelynch.com\">\n\n\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1\">\n\n\t\t<!-- for pesentation only -->\n\t\t<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"../src/css/style.css\">\n\n\t\t</style>\n\n\t</head>\n\n\t<body lang=\"en\">\n\n\t\t<article class=\"article\">\n\n\t\t\t<h1>Dethroning King Coal</h1>\n\n\t\t\t<p><em>By: Peter Singer</em></p>\n\n\t\t\t<p><small><span class=\"eta\"></span> (<span class=\"words\"></span> words)</small></p>\n\n\t\t\t<p>Earlier this year, the concentration of carbon dioxide in the atmosphere reached 400 parts per million (ppm). The last time there was that much CO2 in our atmosphere was\n\t\t\tthree million years ago, when sea levels were 24 meters higher than they are today. Now sea levels are rising again. Last September, Arctic sea ice covered the smallest area\n\t\t\tever recorded. All but one of the ten warmest years since 1880, when global records began to be kept, have occurred in the twenty-first century.</p>\n\n\t\t\t<p>Some climate scientists believe that 400 ppm of CO2 in the atmosphere is already enough to take us past the tipping point at which we risk a climate catastrophe that will turn\n\t\t\tbillions of people into refugees. They say that we need to get the amount of atmospheric CO2 back down to 350 ppm. That figure lies behind the name taken by 350.org, a grassroots\n\t\t\tmovement with volunteers in 188 countries trying to solve the problem of climate change.</p>\n\n\t\t\t<p>Other climate scientists are more optimistic: they argue that if we allow atmospheric CO2 to rise to 450 ppm, a level associated with a two-degree Celsius temperature rise, we\n\t\t\thave a 66.6% chance of avoiding catastrophe. That still leaves a one-in-three chance of catastrophe – worse odds than playing Russian roulette. And we are forecast to surpass 450\n\t\t\tppm by 2038.</p>\n\n\t\t\t<p>One thing is clear: if we are not to be totally reckless with our planet’s climate, we cannot burn all the coal, oil, and natural gas that we have already located. About 80%\n\t\t\tof it – especially the coal, which emits the most CO2 when burned – will have to stay in the ground.</p>\n\n\t\t\t<p>In June, US President Barack Obama told students at Georgetown University that he refused to condemn them and their children and grandchildren to “a planet that’s beyond fixing.”\n\t\t\tSaying that climate change cannot wait for Congress to overcome its “partisan gridlock,” he announced measures using his executive power to limit CO2 emissions, first from new\n\t\t\tfossil-fuel power plants, and then from existing ones.</p>\n\n\t\t\t<p>Obama also called for an end to public financing of new coal plants overseas, unless they deploy carbon-capture technologies (which are not yet economically viable), or else\n\t\t\tthere is, he said, “no other viable way for the poorest countries to generate electricity.”</p>\n\n\t\t\t<p>According to Daniel Schrag, Director of Harvard University’s Center for the Environment and a member of a presidential science panel that has helped to advise Obama on climate\n\t\t\tchange, “Politically, the White House is hesitant to say they’re having a war on coal. On the other hand, a war on coal is exactly what’s needed.”</p>\n\n\t\t\t<p>Schrag is right. His university, like mine and many others, has a plan to reduce its greenhouse-gas emissions. Yet most of them, including Schrag’s and mine, continue to invest\n\t\t\tpart of their multi-billion-dollar endowments in companies that extract and sell coal.</p>\n\n\t\t\t<p>But pressure on educational institutions to stop investing in fossil fuels is beginning to build. Student groups have formed on many campuses, and a handful of colleges and\n\t\t\tuniversities have already pledged to end their investment in fossil fuels. Several US cities, including San Francisco and Seattle, have agreed to do the same.</p>\n\n\t\t\t<p>Now financial institutions, too, are coming under fire for their involvement with fossil fuels. In June, I was part of a group of prominent Australians who signed an open\n\t\t\tletter to the heads of the country’s biggest banks asking them to stop lending to new fossil-fuel extraction projects, and to sell their stakes in companies engaged in such activities.</p>\n\n\t\t\t<p>Speaking at Harvard earlier this year, former US Vice President Al Gore praised a student group that was pushing the university to sell its investments in fossil-fuel\n\t\t\tcompanies, and compared their activities to the divestment campaign in the 1980’s that helped to end South Africa’s racist apartheid policy.</p>\n\n\t\t\t<p>How fair is that comparison? The dividing lines may be less sharp than they were with apartheid, but our continued high level of greenhouse-gas emissions protects the\n\t\t\tinterests of one group of humans – mainly affluent people who are alive today – at the cost of others. (Compared to most of the world’s population, even the American and\n\t\t\tAustralian coal miners who would lose their jobs if the industry shut down are affluent.) Our behavior disregards most of the world’s poor, and everyone who will live on this\n\t\t\tplanet in centuries to come.</p>\n\n\t\t\t<p>Worldwide, the poor leave a very small carbon footprint, but they will suffer the most from climate change. Many live in hot places that are getting even hotter, and hundreds\n\t\t\tof millions of them are subsistence farmers who depend on rainfall to grow their crops. Rainfall patterns will vary, and the Asian monsoon will become less reliable. Those who live\n\t\t\ton this planet in future centuries will live in a hotter world, with higher sea levels, less arable land, and more extreme hurricanes, droughts, and floods.</p>\n\n\t\t\t<p>In these circumstances, to develop new coal projects is unethical, and to invest in them is to be complicit in this unethical activity. While this applies, to some extent, to\n\t\t\tall fossil fuels, the best way to begin to change our behavior is by reducing coal consumption. Replacing coal with natural gas does reduce greenhouse-gas emissions, even if\n\t\t\tnatural gas itself is not sustainable in the long term. Right now, ending investment in the coal industry is the right thing to do.</p>\n\n\t\t</article>\n\n\t\t<script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js\"></script>\n\n\t\t<script type=\"text/javascript\">\n\t\tif (typeof jQuery == 'undefined') {\n\t\t    document.write(unescape(\"%3Cscript src='../src/lib/jquery.1.9.1.min.js' type='text/javascript'%3E%3C/script%3E\"));\n\t\t}\n\t\t</script>\n\n\t\t<script src=\"../src/readingtime.js\"></script>\n\n\t\t<script>\n\n\t\t\t$(function() {\n\n\t\t\t\t$('article').each(function() {\n\n\t\t\t\t\tconst _this = $(this);\n\n\t\t\t\t\t_this.readingTime({\n\t\t\t\t\t\treadingTimeTarget: _this.find('.eta'),\n\t\t\t\t\t\twordCountTarget: _this.find('.words'),\n\t\t\t\t\t\tsuccess: function(data) {\n\t\t\t\t\t\t\tconsole.log(data);\n\t\t\t\t\t\t},\n\t\t\t\t\t\terror: function(data) {\n\t\t\t\t\t\t\t_this.find('.eta').remove();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\n\t\t</script>\n\n\t</body>\n\n</html>\n"
  },
  {
    "path": "demo/remote-multiple.html",
    "content": "<!doctype html>\n\n<html>\n\n\t<head>\n\n\t\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\">\n\n\t\t<meta charset=\"utf-8\">\n\n\t\t<title>Reading Time jQuery Plugin</title>\n\n\t\t<meta name=\"description\" content=\"A simple, lightweight jQuery plugin used to display an estimated time to read some text.\">\n\n\t\t<meta name=\"author\" content=\"http://michaelynch.com\">\n\n\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1\">\n\n\t\t<!-- for pesentation only -->\n\t\t<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"../src/css/style.css\">\n\n\t</head>\n\n\t<body lang=\"en\">\n\n\t\t<article data-file=\"articles/a.html\" data-target=\"article\">\n\n\t\t\t<a href=\"articles/a.html\"><h1>Magna Lorem Quam Nullam</h1></a>\n\n\t\t\t<p><em>By: Mike Lynch</em></p>\n\n\t\t\t<p><small><span class=\"eta\"></span> (<span class=\"words\"></span> words)</small></p>\n\n\t\t\t<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Curabitur blandit tempus porttitor. Nulla vitae elit libero, a pharetra augue. Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>\n\n\t\t\t<a href=\"articles/a.html\" class=\"btn\">Read more</a>\n\n\t\t</article>\n\n\t\t<article data-file=\"articles/b.html\" data-target=\"article\">\n\n\t\t\t<a href=\"articles/b.html\"><h1>Justo Cursus Inceptos Ipsum</h1></a>\n\n\t\t\t<p><em>By: Mike Lynch</em></p>\n\n\t\t\t<p><small><span class=\"eta\"></span> (<span class=\"words\"></span> words)</small></p>\n\n\t\t\t<p>Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Aenean\n\t\t\tlacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.</p>\n\n\t\t\t<a href=\"articles/b.html\" class=\"btn\">Read more</a>\n\n\t\t</article>\n\n\t\t<article data-file=\"articles/c.html\" data-target=\"article\">\n\n\t\t\t<a href=\"articles/c.html\"><h1>Sem Vehicula Dapibus Malesuada</h1></a>\n\n\t\t\t<p><em>By: Mike Lynch</em></p>\n\n\t\t\t<p><small><span class=\"eta\"></span> (<span class=\"words\"></span> words)</small></p>\n\n\t\t\t<p>Nullam quis risus eget urna mollis ornare vel eu leo. Nulla vitae elit libero, a pharetra augue. Maecenas faucibus mollis interdum. Nullam id dolor id nibh\n\t\t\tultricies vehicula ut id elit. Nullam id dolor id nibh ultricies vehicula ut id elit.</p>\n\n\t\t\t<a href=\"articles/c.html\" class=\"btn\">Read more</a>\n\n\t\t</article>\n\n\t\t<script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js\"></script>\n\n\t\t<script type=\"text/javascript\">\n\t\tif (typeof jQuery == 'undefined') {\n\t\t\tdocument.write(unescape(\"%3Cscript src='../src/lib/jquery.1.9.1.min.js' type='text/javascript'%3E%3C/script%3E\"));\n\t\t}\n\t\t</script>\n\n\t\t<script src=\"../src/readingtime.js\"></script>\n\n\t\t<script>\n\n\t\t\t$(function() {\n\n\t\t\t\t$('article').each(function() {\n\n\t\t\t\t\tlet _this = $(this);\n\n\t\t\t\t\t_this.readingTime({\n\t\t\t\t\t\treadingTimeTarget: _this.find('.eta'),\n\t\t\t\t\t\twordCountTarget: _this.find('.words'),\n\t\t\t\t\t\tremotePath: _this.attr('data-file'),\n\t\t\t\t\t\tremoteTarget: _this.attr('data-target'),\n\t\t\t\t\t\tsuccess: function(data) {\n\t\t\t\t\t\t\tconsole.log(data);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t});\n\n\t\t\t});\n\n\t\t</script>\n\n\t</body>\n\n</html>\n"
  },
  {
    "path": "demo/remote.html",
    "content": "<!doctype html>\n\n<html>\n\n\t<head>\n\n\t\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge,chrome=1\">\n\n\t\t<meta charset=\"utf-8\">\n\n\t\t<title>Reading Time jQuery Plugin</title>\n\n\t\t<meta name=\"description\" content=\"A simple, lightweight jQuery plugin used to display an estimated time to read some text.\">\n\n\t\t<meta name=\"author\" content=\"http://michaelynch.com\">\n\n\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1\">\n\n\t\t<!-- for pesentation only -->\n\t\t<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"../src/css/style.css\">\n\n\t</head>\n\n\t<body lang=\"en\">\n\n\t\t<article>\n\n\t\t\t<a href=\"index.html\"><h1>Dethroning King Coal</h1></a>\n\n\t\t\t<p><em>By: Peter Singer</em></p>\n\n\t\t\t<p><small><span class=\"eta\"></span> (<span class=\"words\"></span> words)</small></p>\n\n\t\t\t<p>Earlier this year, the concentration of carbon dioxide in the atmosphere reached 400 parts per million (ppm). The last time there was that much CO2 in our atmosphere was\n\t\t\tthree million years ago, when sea levels were 24 meters higher than they are today. Now sea levels are rising again. Last September, Arctic sea ice covered the smallest area\n\t\t\tever recorded. All but one of the ten warmest years since 1880, when global records began to be kept, have occurred in the twenty-first century.</p>\n\n\t\t\t<a href=\"index.html\" class=\"btn\">Read more</a>\n\n\t\t</article>\n\n\t\t<script src=\"//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js\"></script>\n\n\t\t<script type=\"text/javascript\">\n\t\tif (typeof jQuery == 'undefined') {\n\t\t    document.write(unescape(\"%3Cscript src='../src/lib/jquery.1.9.1.min.js' type='text/javascript'%3E%3C/script%3E\"));\n\t\t}\n\t\t</script>\n\n\t\t<script src=\"../src/readingtime.js\"></script>\n\n\t\t<script>\n\n\t\t\t$(function() {\n\n\t\t\t\t$('article').each(function() {\n\n\t\t\t\t\tlet _this = $(this);\n\n\t\t\t\t\t_this.readingTime({\n\t\t\t\t\t\twordCountTarget: _this.find('.words'),\n\t\t\t\t\t\tremotePath: 'index.html',\n\t\t\t\t\t\tremoteTarget: 'article',\n\t\t\t\t\t\tsuccess: function(data) {\n\t\t\t\t\t\t\tconsole.log(data);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\n\t\t</script>\n\n\t</body>\n\n</html>\n"
  },
  {
    "path": "package.json",
    "content": "{\n\t\"name\": \"reading-time\",\n\t\"version\": \"2.0.0\",\n\t\"homepage\": \"https://github.com/michael-lynch/reading-time\",\n\t\"author\": \"Michael Lynch <mikethomaslynch@gmail.com>\",\n\t\"description\": \"A simple, lightweight jQuery plugin used to display an estimated time to read some text.\",\n\t\"main\": \"build/readingtime.min.js\",\n\t\"license\": \"MIT\",\n\t\"keywords\": [\n\t\t\"reading\",\n\t\t\"time\",\n\t\t\"estimated\",\n\t\t\"eta\"\n\t]\n}\n"
  },
  {
    "path": "reading-time.jquery.json",
    "content": "{\n\t\"name\": \"reading-time\",\n\t\"title\": \"Reading Time\",\n\t\"description\": \"A simple, lightweight jQuery plugin used to display an estimated time to read some text.\",\n\t\"keywords\": [\n\t\t\"reading\",\n\t\t\"time\",\n\t\t\"estimated\",\n\t\t\"eta\"\n\t],\n\t\"version\": \"2.0.0\",\n\t\"author\": {\n\t\t\"name\": \"Michael Lynch\",\n\t\t\"url\": \"http://michaelynch.com\"\n\t},\n\t\"licenses\": [\n\t\t{\n\t\t\t\"type\": \"MIT\",\n\t\t\t\"url\": \"https://raw.github.com/michael-lynch/reading-time/master/LICENSE.md\"\n\t\t}\n\t],\n\t\"dependencies\": {\n\t\t\"jquery\": \">=1.8\"\n\t}\n}\n"
  },
  {
    "path": "src/css/style.css",
    "content": "body {\n\tfont: 18px Georgia, Times, \"Times New Roman\", serif;\n\tline-height: 28px;\n\tcolor: #333;\n\tmargin: 80px 10%;\n\tmax-width: 800px;\n\twidth: 80%;\n}\n\narticle {\n\tmargin: 0 0 40px 0;\n}\n\nh1 {\n\tfont: 36px \"Gill Sans\", \"Gill Sans MT\", Calibri, sans-serif;\n\tmargin: 0;\n}\n\na {\n\ttext-decoration: none;\n\tcolor: #333;\n}\n\na:hover {\n\tcolor: crimson;\n}\n\nsmall {\n\tfont: 14px \"Gill Sans\", \"Gill Sans MT\", Calibri, sans-serif;\n\ttext-transform: uppercase;\n}\n\np {\n\tmargin: 0 0 15px 0;\n}\n\n.btn {\n\tfont: 18px \"Gill Sans\", \"Gill Sans MT\", Calibri, sans-serif;\n\ttext-transform: uppercase;\n\tdisplay: inline-block;\n\tbackground: gainsboro;\n\tmargin: 10px 0;\n\tpadding: 15px;\n}\n\n.btn:hover {\n\tbackground: crimson;\n\tcolor: white;\n}"
  },
  {
    "path": "src/readingtime.js",
    "content": "/*!\nName: Reading Time\nDependencies: jQuery\nAuthor: Michael Lynch\nAuthor URL: http://michaelynch.com\nDate Created: August 14, 2013\nDate Updated: April 30, 2018\nLicensed under the MIT license\n*/\n\n;(function($) {\n\n\t$.fn.readingTime = function(options) {\n\n\t\t// define default parameters\n\t\tconst defaults = {\n\t\t\treadingTimeTarget: '.eta',\n\t\t\treadingTimeAsNumber: false,\n\t\t\twordCountTarget: null,\n\t\t\twordsPerMinute: 270,\n\t\t\tround: true,\n\t\t\tlang: 'en',\n\t\t\tlessThanAMinuteString: '',\n\t\t\tprependTimeString: '',\n\t\t\tprependWordString: '',\n\t\t\tremotePath: null,\n\t\t\tremoteTarget: null,\n\t\t\tsuccess: function() {},\n\t\t\terror: function() {}\n\t\t};\n\n\t\tconst plugin = this;\n\t\tconst el = $(this);\n\n\t\tlet wordsPerSecond;\n\t\tlet lessThanAMinute;\n\t\tlet minShortForm;\n\n\t\tlet totalWords;\n\t\tlet totalReadingTimeSeconds;\n\n\t\tlet readingTimeMinutes;\n\t\tlet readingTimeSeconds;\n\t\tlet readingTime;\n\t\tlet readingTimeObj;\n\n\t\t// merge defaults and options\n\t\tplugin.settings = $.extend({}, defaults, options);\n\n\t\t// define vars\n\t\tconst s = plugin.settings;\n\n\t\tconst setTime = function(o) {\n\n\t\t\tif(o.text !== '') {\n\t\t\t\tif (s.lang == \"zh\") {\n\t\t\t\t\tlet text = o.text.trim();\n\t\t\t\t\t// step 1: count the number of Chinese characters\n\t\t\t\t\tconst charArray = text.match(/[\\u4e00-\\u9fa5]/g);\n\t\t\t\t\tlet charCount = 0;\n\t\t\t\t\tif (charArray != null) {\n\t\t\t\t\t\tcharCount = charArray.length;\n\t\t\t\t\t}\n\t\t\t\t\t// step 2: replace all the Chinese characters with blank\n\t\t\t\t\ttext = text.replace(/[\\u4e00-\\u9fa5]/g, \" \");\n\t\t\t\t\t// step 3:replace newlines with blank\n\t\t\t\t\ttext = text.replace(/[\\r\\n]/g, \" \");\n\t\t\t\t\t// step 4:replace special characters with blank\n\t\t\t\t\ttext = text.replace(/\\W+/g, \" \");\n\t\t\t\t\t// step 5: count the number of total English words\n\t\t\t\t\tconst totalEnWords = text.trim().split(/\\s+/g).length;\n\t\t\t\t\ttotalWords = totalEnWords + charCount;\n\t\t\t\t} else {\n\t\t\t\t\t//split text by spaces to define total words\n\t\t\t\t\ttotalWords = o.text.trim().split(/\\s+/g).length;\n\t\t\t\t}\n\n\t\t\t\t//define words per second based on words per minute (s.wordsPerMinute)\n\t\t\t\twordsPerSecond = s.wordsPerMinute / 60;\n\n\t\t\t\t//define total reading time in seconds\n\t\t\t\ttotalReadingTimeSeconds = totalWords / wordsPerSecond;\n\n\t\t\t\t// define reading time\n\t\t\t\treadingTimeMinutes = Math.floor(totalReadingTimeSeconds / 60);\n\n\t\t\t\t// define remaining reading time seconds\n\t\t\t\treadingTimeSeconds = Math.round(totalReadingTimeSeconds - (readingTimeMinutes * 60));\n\n\t\t\t\t// format reading time\n\t\t\t\treadingTime = `${readingTimeMinutes}:${readingTimeSeconds}`;\n\t\t\t\t// if s.round\n\t\t\t\tif(s.round) {\n\n\t\t\t\t\t// if minutes are greater than 0\n\t\t\t\t\tif(readingTimeMinutes > 0) {\n\n\t\t\t\t\t\t// set reading time by the minute\n\t\t\t\t\t\t$(s.readingTimeTarget).text(s.prependTimeString + readingTimeMinutes + ((!s.readingTimeAsNumber) ? ' ' + minShortForm : ''));\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// set reading time as less than a minute\n\t\t\t\t\t\t$(s.readingTimeTarget).text((!s.readingTimeAsNumber) ? s.prependTimeString + lessThanAMinute : readingTimeMinutes);\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// set reading time in minutes and seconds\n\t\t\t\t\t$(s.readingTimeTarget).text(s.prependTimeString + readingTime);\n\t\t\t\t}\n\n\t\t\t\t// if word count container isn't blank or undefined\n\t\t\t\tif(s.wordCountTarget !== '' && s.wordCountTarget !== undefined) {\n\n\t\t\t\t\t// set word count\n\t\t\t\t\t$(s.wordCountTarget).text(s.prependWordString + totalWords);\n\t\t\t\t}\n\n\t\t\t\treadingTimeObj = {\n\t\t\t\t\twpm: s.wordsPerMinute,\n\t\t\t\t\twords: totalWords,\n\t\t\t\t\teta: {\n\t\t\t\t\t\ttime: readingTime,\n\t\t\t\t\t\tminutes: readingTimeMinutes,\n\t\t\t\t\t\tseconds: totalReadingTimeSeconds\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\t// run success callback\n\t\t\t\ts.success.call(this, readingTimeObj);\n\n\t\t\t} else {\n\n\t\t\t\t// run error callback\n\t\t\t\ts.error.call(this, {\n\t\t\t\t\terror: 'The element does not contain any text'\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\t// if no element was bound\n\t\tif(!this.length) {\n\n\t\t\t// run error callback\n\t\t\ts.error.call(this, {\n\t\t\t\terror: 'The element could not be found'\n\t\t\t});\n\n\t\t\t// return so chained events can continue\n\t\t\treturn this;\n\t\t}\n\n\t\t// Use switch instead of ifs\n\t\tswitch (s.lang) {\n\t\t\t// if s.lang is Arabic\n\t\t\tcase 'ar':\n        lessThanAMinute = s.lessThanAMinuteString || \"أقل من دقيقة\";\n        minShortForm = 'دقيقة';\n        break;\n\t\t\t// if s.lang is Czech\n\t\t\tcase 'cz':\n        lessThanAMinute = s.lessThanAMinuteString || \"Méně než minutu\";\n        minShortForm = 'min';\n        break;\n\t\t\t// if s.lang is Danish\n\t\t\tcase 'da':\n        lessThanAMinute = s.lessThanAMinuteString || \"Mindre end et minut\";\n        minShortForm = 'min';\n        break;\n\t\t\t// if s.lang is German\n      case 'de':\n        lessThanAMinute = s.lessThanAMinuteString || \"Weniger als eine Minute\";\n        minShortForm = 'min';\n        break;\n\t\t\t// if s.lang is Spanish\n      case 'es':\n        lessThanAMinute = s.lessThanAMinuteString || \"Menos de un minuto\";\n        minShortForm = 'min';\n        break;\n\t\t\t// if s.lang is French\n      case 'fr':\n        lessThanAMinute = s.lessThanAMinuteString || \"Moins d'une minute\";\n        minShortForm = 'min';\n        break;\n\t\t\t// if s.lang is Hungarian\n      case 'hu':\n        lessThanAMinute = s.lessThanAMinuteString || \"Kevesebb mint egy perc\";\n        minShortForm = 'perc';\n        break;\n\t\t\t// if s.lang is Icelandic\n      case 'is':\n        lessThanAMinute = s.lessThanAMinuteString || \"Minna en eina mínútu\";\n        minShortForm = 'min';\n        break;\n\t\t\t// if s.lang is Italian\n      case 'it':\n        lessThanAMinute = s.lessThanAMinuteString || \"Meno di un minuto\";\n        minShortForm = 'min';\n        break;\n\t\t\t// if s.lang is Dutch\n      case 'nl':\n        lessThanAMinute = s.lessThanAMinuteString || \"Minder dan een minuut\";\n        minShortForm = 'min';\n        break;\n\t\t\t// if s.lang is Norwegian\n      case 'no':\n        lessThanAMinute = s.lessThanAMinuteString || \"Mindre enn ett minutt\";\n        minShortForm = 'min';\n        break;\n\t\t\t// if s.lang is Polish\n      case 'pl':\n        lessThanAMinute = s.lessThanAMinuteString || \"Mniej niż minutę\";\n        minShortForm = 'min';\n        break;\n\t\t\t// if s.lang is Russian\n      case 'ru':\n        lessThanAMinute = s.lessThanAMinuteString || \"Меньше минуты\";\n        minShortForm = 'мин';\n        break;\n\t\t\t// if s.lang is Slovak\n      case 'sk':\n        lessThanAMinute = s.lessThanAMinuteString || \"Menej než minútu\";\n        minShortForm = 'min';\n        break;\n\t\t\t// if s.lang is Swedish\n      case 'sv':\n        lessThanAMinute = s.lessThanAMinuteString || \"Mindre än en minut\";\n        minShortForm = 'min';\n        break;\n\t\t\t// if s.lang is Turkish\n      case 'tr':\n        lessThanAMinute = s.lessThanAMinuteString || \"Bir dakikadan az\";\n        minShortForm = 'dk';\n        break;\n\t\t\t// if s.lang is Ukrainian\n      case 'uk':\n        lessThanAMinute = s.lessThanAMinuteString || \"Менше хвилини\";\n        minShortForm = 'хв';\n        break;\n\t\t\t// if s.lang is Greek\n\t\t\tcase 'el':\n        lessThanAMinute = s.lessThanAMinuteString || 'Λιγότερο από λεπτό';\n        minShortForm = 'λεπτά';\n        break;\n            // if s.lang is Portuguese\n            case 'pt-BR':\n        lessThanAMinute = s.lessThanAMinuteString || 'Menos de um minuto';\n        minShortForm = 'min';\n\t\tbreak;\n\t\t\t// if s.lang is Korean\n\t\t\tcase 'kr':\n\t\tlessThanAMinute = s.lessThanAMinuteString || '1분 이하';\n\t\tminShortForm = '분';\n        break;\n\t\t\t// default s.lang in english\n\t\t\tdefault:\n        lessThanAMinute = s.lessThanAMinuteString || 'Less than a minute';\n        minShortForm = 'min';\n    }\n\n\t\t// for each element\n\t\tel.each(function(index) {\n\n\t\t\t// if s.remotePath and s.remoteTarget aren't null\n\t\t\tif(s.remotePath != null && s.remoteTarget != null) {\n\n\t\t\t\t// get contents of remote file\n\t\t\t\t$.get(s.remotePath, function(data) {\n\t\t\t\t\tlet wrapper = document.createElement('div');\n\n\t\t\t\t\twrapper.innerHTML = data;\n\n\t\t\t\t\t// set time using the remote target found in the remote file\n\t\t\t\t\tsetTime({\n\t\t\t\t\t\ttext: $(wrapper).find(s.remoteTarget).text()\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t} else {\n\n\t\t\t\t// set time using the targeted element\n\t\t\t\tsetTime({\n\t\t\t\t\ttext: el.text()\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\treturn true;\n\t}\n})(jQuery);\n"
  }
]