DokuWiki

It's better when it's simple

User Tools

Site Tools


tips:wordcounter

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tips:wordcounter [2010-03-11 22:07] 67.175.65.231tips:wordcounter [2022-12-19 11:46] (current) – [Discussion] 183.82.239.152
Line 8: Line 8:
 /** /**
  * Script to add a wordcounter on the edit form  * Script to add a wordcounter on the edit form
 + * https://www.dokuwiki.org/tips:wordcounter
  *  *
  * @author Andreas Gohr <andi@splitbrain.org>  * @author Andreas Gohr <andi@splitbrain.org>
Line 34: Line 35:
 } }
  
-addInitEvent(function(){ +// replaced next line as per https://www.dokuwiki.org/devel:jqueryfaq [Rik, 2013-10-20] 
-    var form = $('dw__editform');+// addInitEvent(function(){ 
 +jQuery(function(){ 
 +    // replaced next line as per https://www.dokuwiki.org/devel:jqueryfaq [Rik, 2013-10-20] 
 +    // var form = $('dw__editform')
 +    var $form = jQuery('#dw__editform');  
 +    var form = $form[0];
     if(!form) return;     if(!form) return;
     var div = document.createElement('div');     var div = document.createElement('div');
Line 52: Line 58:
         zei_all += charcounter(form.elements.suffix.value);         zei_all += charcounter(form.elements.suffix.value);
  
-    addEvent(form.elements.wikitext,'keyup',function(){+    // replaced next line as per https://www.dokuwiki.org/devel:jqueryfaq [Rik, 2013-10-20]  
 +    // addEvent(form.elements.wikitext,'keyup',function(){ 
 +    jQuery(form.elements.wikitext).keyup(function(){
         if(wordcounter_timeout) window.clearTimeout(wordcounter_timeout);         if(wordcounter_timeout) window.clearTimeout(wordcounter_timeout);
         wordcounter_timeout = window.setTimeout(function(){         wordcounter_timeout = window.setTimeout(function(){
Line 70: Line 78:
 </code> </code>
 ===== Discussion ===== ===== Discussion =====
-Can this be turned into a plugin that generates the word counter on all pages in the DokuWiki?+Can this be turned into a plugin that generates statistics on the number of words in the entire DokuWiki environmentI would like a feature similar to Microsoft Word's Word Counter tool so I can have some measurement of my progress. --[[mailto:steve@stevevance.net|Steven Vance]] 
 + 
 +I can't get any of the word count scripts to work, either as userscript.js, as a plugin, or as a greasemonkey script. Is there anything that works with "Binky?" [Kevin Dunn] 
 + 
 +>same problem as [Kevin Dunn] is there a way to run this with HRUN? or can i check somehow if userscript.js is already running with or without errors? Thanks [kbsit] 
 + 
 +Another alternative solution is using a good word count & character count tool freely available on the web, such as [[http://wordcounttools.com|Word Count Tools]] ,[[https://grammica.com/word-counter|Word Counter]] , [[http://charactercounttool.com|Character Count Tool]] or [[http://www.countingcharacters.com/|Counting Characters]].  
 +==== Issue ==== 
 +ReferenceError: findPosY is not defined 
 +=== a revised version === 
 +I changed the script to add wordcounter below the summary bar. Cause I'm a newbie on javascript, I just cut out some unresolved parts (counting for section, floating on textarea) 8-o. It works on //2014-05-05a Ponder Stibbons//
 +-- [[inbonk@gmail.com | In-Bon Kuh]] 
 + 
 +<code javascript conf/userscript.js> 
 +/** 
 + * Script to add a wordcounter below the summary bar 
 + * https://www.dokuwiki.org/tips:wordcounter 
 + * 
 + * @author Andreas Gohr <andi@splitbrain.org> 
 + * @author Lars Flintzak 
 + * @license GPL 2 
 + */ 
 + 
 +var wordcounter_timeout; 
 + 
 +function wordcounter(text){ 
 +    var list = text.split(/[^\w\-_]+/); 
 +    var len  = list.length; 
 +    if(list[len-1] == '') len--; 
 +    if(list[0] == '') len--; 
 +    if(len < 0) len=0; 
 +    return len; 
 +
 + 
 +function charcounter(text){ 
 +    var list = text.split(/[^\w\-_]+/); 
 +    var len  = text.length; 
 +    if(list[len-1] == '') len--; 
 +    if(list[0] == '') len--; 
 +    if(len < 0) len=0; 
 +    return len; 
 +
 + 
 +jQuery(function(){ 
 +    var $form = jQuery('#dw__editform');  
 +    var form = $form[0]; 
 +    if(!form) return; 
 +  
 +    var div = document.createElement('div'); 
 +    div.id = 'word__counter__output'; 
 +    div.style.color = '#0a0'; 
 +    div.style.padding = '0.2em 0.2em'; 
 + 
 +    var $summary = jQuery('.editBar .summary'); 
 +    var summary = $summary[0]; 
 +    summary.appendChild(div); 
 + 
 +    jQuery(form.elements.wikitext).keyup(function(){ 
 +        if(wordcounter_timeout) window.clearTimeout(wordcounter_timeout); 
 +        wordcounter_timeout = window.setTimeout(function(){ 
 +            var len = wordcounter(form.elements.wikitext.value); 
 +            var zei = charcounter(form.elements.wikitext.value); 
 +            div.innerHTML = 
 +                'text count: &nbsp;'+(zei)+' chars, &nbsp&nbsp;' 
 +                +(len)+' words'; 
 +        },1000); 
 +        return true; 
 +    }); 
 +}); 
 +</code>
tips/wordcounter.1268341630.txt.gz · Last modified: 2010-03-11 22:07 by 67.175.65.231

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki