ep_readability
Advanced tools
Comparing version 0.0.7 to 0.0.8
{ | ||
"name": "ep_readability", | ||
"version": "0.0.7", | ||
"description": "Calculates the FLESCH readability index, client based.", | ||
"version": "0.0.8", | ||
"description": "Calculates the Flesch readability index in Etherpad, client based.", | ||
"author": { | ||
@@ -14,6 +14,11 @@ "name": "Erik", | ||
}, | ||
"keywords": [ | ||
"flesch", | ||
"readability", | ||
"etherpad" | ||
], | ||
"readme": "# 1 Click to calculate the FLESCH readability factor\r\nThere'll be a button. Push it.\r\n\r\nColours indicate the readability. \r\n\r\nNumeric values detail the readability:\r\n\r\na) Negative numbers or around \"0\" indicate texts which are very difficult to read.\r\n\r\nb) Numbers around \"100\" indicate very easy texts.\r\n\r\n# Install\r\n\r\nOn the command line, run `npm install ep_readability`.\r\n\r\nAlternatively, browse to `http://yourEtherpadliteInstan.ce/admin/plugins`, search for `ep_readability` and click install.\r\n\r\nAfter restarting the server, the plugin takes effect.\r\n\r\n# License\r\nMIT", | ||
"readmeFilename": "README.md", | ||
"_id": "ep_readability@0.0.6", | ||
"_id": "ep_readability@0.0.7", | ||
"_from": "ep_readability@" | ||
} |
# 1 Click to calculate the FLESCH readability factor | ||
There'll be a button. Push it. | ||
Colours indicate the readability. | ||
Colours indicate the readability of the text: red, orange, yellow, green. | ||
Numeric values detail the readability: | ||
a) Negative numbers or around "0" indicate texts which are very difficult to read. | ||
a) Negative numbers or near "0" indicate texts which are very difficult to read. | ||
b) Numbers around "100" indicate very easy texts. | ||
b) Numbers near "100" indicate very easy texts. | ||
@@ -23,2 +23,9 @@ Calculating is triggered by editing action or by pushing the button. | ||
# License | ||
MIT | ||
MIT | ||
# Other Resources | ||
Some code of the TextStatistics package is being used. | ||
TextStatistics.js, Christopher Giffard (2012) | ||
https://github.com/DaveChild/Text-Statistics |
// ---------------------------------------------------------------------------- | ||
// Some snipptes from TextStatistics.js (see below) are being used and have | ||
// Some snippets from TextStatistics.js (see below) are being used and have | ||
// been adjusted/corrected. | ||
// ---------------------------------------------------------------------------- | ||
// | ||
// TextStatistics.js | ||
// Christopher Giffard (2012) | ||
// 1:1 API Fork of TextStatistics.php by Dave Child (Thanks mate!) | ||
// https://github.com/DaveChild/Text-Statistics | ||
// ---------------------------------------------------------------------------- | ||
@@ -19,17 +18,15 @@ exports.cleanText = function(text) { | ||
//console.log(text); | ||
// This is Etherpad specific: | ||
// 1. Remove spans | ||
// 2. Get an Etherpad paragraph, add dot if no terminator or comma is at the end | ||
// 1. Remove HTML entities @TODO add more entities | ||
// 2. Remove Etherpad spans | ||
// 3. Get an Etherpad paragraph, add dot if no terminator or comma is at the end | ||
text = text.replace(/ /gm,' '); | ||
text = text.replace(/<span[^>]*>/gm,'').replace(/<\/span>/gm,''); | ||
text = text.replace(/<div[^>]*>([^<]+[^:,!?.-])<\/div>/gm, "$1."); | ||
// This is not Etherpad specific: | ||
// @TODO Add URL matcher | ||
text = text | ||
.replace(/<[^>]+>/gm, '') // Strip tags | ||
.replace(/<[^>]+>/gm, '') // Strip tags | ||
.replace(/\d+([\.,]?\d+)*/g, 'two') // Convert numbers with delimiters to one syllable @TODO lookahead for space: EUR 1000. bla | ||
.replace(/[!?]/gm, '.') // Unify terminators | ||
.replace(/[!?]/gm, '.') // Unify terminators | ||
.replace(/(\w)[:,](\S+)/gm, '$1 $2') // Unify sentence structure | ||
@@ -40,7 +37,7 @@ .replace(/(\w)- (?!und|and)(\w)/gm, '$1$2') // Remove inline word breaks @TODO add other fill words | ||
.replace(/[^a-zA-Z0-9\.äüöÄÜÖß ]+/gm, '') // Remove non-word characters | ||
.replace(/\s+/g,' ') // Remove multiple spaces | ||
.replace(/^\s+/gm,'') // Strip leading whitespace | ||
.replace(/\s+$/gm,'') // Strip trailing whitespace | ||
.replace(/(\w)\.(\w)/gm,'$1. $2'); // Enhance readability | ||
//console.log(text); | ||
.replace(/\s+/g,' ') // Remove multiple spaces | ||
.replace(/^\s+/gm,'') // Strip leading whitespace | ||
.replace(/\s+$/gm,'') // Strip trailing whitespace | ||
.replace(/(\w)\.(\w)/gm,'$1. $2'); // Enhance readability | ||
return text; | ||
@@ -51,3 +48,2 @@ } | ||
var flesch = wordCount = sentenceCount = syllCount = averageWordsPerSentence = averageSyllablesPerWord = null; | ||
text = exports.cleanText(text); | ||
@@ -251,2 +247,4 @@ wordCount = text.split(/[\s\.]+/g).length || 1; | ||
text = exports.cleanText(text); | ||
if(text.length > 0) { | ||
@@ -253,0 +251,0 @@ result = exports.fleschReadingEase( text ); |
@@ -44,5 +44,13 @@ var readab = require('../static/js/readability_button.js'); | ||
exports.cleanTextEntityDecode = function(test) { | ||
var text = '<div id="magicdomid2" class=""><br></div><div id="magicdomid3" class=""><br></div><div id="magicdomid4" class=""><span class="author-a-z65zjckdup0xdseeity"> </span></div><div id="magicdomid5" class=""><br></div>'; | ||
var result = ''; | ||
test.equal(result, readab.cleanText(text)); | ||
test.done(); | ||
} | ||
/* | ||
<div id="magicdomid2" class=""><span class="author-a-z65zjckdup0xdseeity">Bedingungsloses Grundeinkommen und Mindestlohn</span></div><div id="magicdomid3" class=""><span class="author-a-z65zjckdup0xdseeity">Wir Piraten setzen uns für die Einführung eines bedingungslosen Grundeinkommens ein, das die Ziele des „Rechts auf sichere Existenz und gesellschaftlicher Teilhabe“ aus unserem Parteiprogramm erfüllt. Es soll:</span></div><div id="magicdomid4" class=""><br></div><div id="magicdomid5" class=""><span class="author-a-z65zjckdup0xdseeity">die Existenz sichern und gesellschaftliche Teilhabe ermöglichen, einen individuellen Rechtsanspruch darstellen sowie ohne Bedürftigkeitsprüfung und ohne Zwang zu Arbeit oder anderen Gegenleistungen garantiert werden. Wir wissen, dass ein bedingungsloses Grundeinkommen die Paradigmen des Sozialstaats wesentlich verändern wird. Statt mit klassischer Parteipolitik muss dessen Einführung daher mit einer breiten Beteiligung der Bürger einhergehen.</span></div><div id="magicdomid6" class=""><br></div><div id="magicdomid7" class=""><span class="author-a-z65zjckdup0xdseeity">Wir nehmen viele engagierte Menschen wahr, die sich seit Jahren in- und außerhalb von Parteien für ein bedingungsloses Grundeinkommen einsetzen. Wir wollen dieses Engagement auf die politische Bühne des Bundestages bringen und mit den dortigen Möglichkeiten eine breite und vor allem fundierte Diskussion in der Gesellschaft unterstützen.</span></div><div id="magicdomid8" class=""><span class="author-a-z65zjckdup0xdseeity">Dazu wollen wir eine Enquete-Kommission im Deutschen Bundestag gründen, deren Ziel die konkrete Ausarbeitung und Berechnung neuer sowie die Bewertung bestehender Grundeinkommens-Modelle sein soll. Für jedes Konzept sollen die voraussichtlichen Konsequenzen sowie Vor- und Nachteile aufgezeigt und der Öffentlichkeit transparent gemacht werden.</span></div><div id="magicdomid9" class=""><br></div><div id="magicdomid10" class=""><span class="author-a-z65zjckdup0xdseeity">Zeitgleich werden wir uns im Bundestag dafür einsetzen, dass noch vor Ende der Legislaturperiode die gesetzlichen Grundlagen für Volksabstimmungen auf Bundesebene geschaffen werden. Sie sollen den Bürgern ermöglichen, sowohl die in der Enquete-Kommission vorgestellten als auch andere Grundeinkommens-Modelle als Gesetzentwurf direkt zur Abstimmung zu stellen. Um dabei über eine Vielfalt an Konzepten gleichzeitig entscheiden zu können, sollen Volksabstimmungen auch mit Präferenzwahlverfahren durchgeführt werden können.</span></div><div id="magicdomid11" class=""><br></div><div id="magicdomid12" class=""><span class="author-a-z65zjckdup0xdseeity">Bis zur Einführung eines bedingungslosen Grundeinkommens setzen sich die Piraten für einen bundesweiten gesetzlichen Mindestlohn ein.</span></div><div id="magicdomid13" class=""><br></div><div id="magicdomid14" class=""><span class="author-a-z65zjckdup0xdseeity">Die Piratenpartei fordert als kurzfristige Maßnahme bis zur Einrichtung einer Expertenkommission die Einführung eines allgemeinen gesetzlichen Mindestlohns, der sich wie folgt berechnet:</span></div><div id="magicdomid15" class=""><br></div><div id="magicdomid16" class=""><span class="author-a-z65zjckdup0xdseeity">(60% vom durchschnittlichen Jahresarbeitslohn in Deutschland + 1.000€ Werbekostenpauschale) geteilt durch 2.080 Stunden [52 Wochen à 40 Wochenstunden]</span></div><div id="magicdomid17" class=""><br></div><div id="magicdomid18" class=""><span class="author-a-z65zjckdup0xdseeity">Bei Zeitverträgen soll dieser Mindestlohn um 8,33 % erhöht werden!</span></div><div id="magicdomid19" class=""><br></div> | ||
*/ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
23900
347
30