UNPKG

markdown-proofing

Version:

A markdown proofing platform for individuals, teams, and organizations.

102 lines (69 loc) 4.04 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _analyzerResult = require('../analyzer-result'); var _analyzerResult2 = _interopRequireDefault(_analyzerResult); var _textProcessor = require('../text-processor'); var _textProcessor2 = _interopRequireDefault(_textProcessor); var _textStatistics = require('text-statistics'); var _textStatistics2 = _interopRequireDefault(_textStatistics); var _readTime = require('read-time'); var _readTime2 = _interopRequireDefault(_readTime); var _roundTo = require('round-to'); var _roundTo2 = _interopRequireDefault(_roundTo); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var StatisticsAnalyzer = function () { function StatisticsAnalyzer() { _classCallCheck(this, StatisticsAnalyzer); } _createClass(StatisticsAnalyzer, [{ key: 'analyze', value: function analyze(str) { var result = new _analyzerResult2.default(); var text = _textProcessor2.default.markdownToText(str); var stats = (0, _textStatistics2.default)(text || ' '); var statsFullTextContent = (0, _textStatistics2.default)(str || ' '); var addMessage = function addMessage(messageType, numericValue) { result.addMessage(messageType, (0, _roundTo2.default)(numericValue, 2)); }; // // General statistics // addMessage('statistics-text-length', statsFullTextContent.textLength()); addMessage('statistics-letter-count', stats.letterCount()); addMessage('statistics-sentence-count', stats.sentenceCount()); addMessage('statistics-word-count', stats.wordCount()); addMessage('statistics-average-words-per-sentence', stats.averageWordsPerSentence()); addMessage('statistics-average-syllables-per-word', stats.averageSyllablesPerWord()); addMessage('statistics-words-with-three-syllables', stats.wordsWithThreeSyllables()); addMessage('statistics-percentage-words-with-three-syllables', stats.percentageWordsWithThreeSyllables()); // // Readability // // https://en.wikipedia.org/wiki/Flesch–Kincaid_readability_tests addMessage('statistics-flesch-kincaid-reading-ease', stats.fleschKincaidReadingEase()); addMessage('statistics-flesch-kincaid-grade-level', stats.fleschKincaidGradeLevel()); // https://en.wikipedia.org/wiki/Gunning_fog_index addMessage('statistics-gunning-fog-score', stats.gunningFogScore()); // https://en.wikipedia.org/wiki/Coleman%E2%80%93Liau_index addMessage('statistics-coleman-liau-index', stats.colemanLiauIndex()); // https://en.wikipedia.org/wiki/SMOG addMessage('statistics-smog-index', stats.smogIndex()); // https://en.wikipedia.org/wiki/Automated_readability_index addMessage('statistics-automated-readability-index', stats.automatedReadabilityIndex()); // // Estimated read time // var readTimeResult = (0, _readTime2.default)(text); result.addMessage('statistics-estimated-read-time', readTimeResult.text); result.addMessage('statistics-estimated-read-time-minutes', readTimeResult.m); return result; } }]); return StatisticsAnalyzer; }(); exports.default = StatisticsAnalyzer; module.exports = exports['default'];