/* LIVE COMMENT PREVIEW FOR TEXTPATTERN */ /* * Adding events on the fly * see: http://www.scottandrew.com/weblog/articles/cbs-events */ window.onload = function() { addEvent(document.getElementById("name"),"keyup",ReloadNameDiv,true); addEvent(document.getElementById("message"),"keyup",ReloadTextDiv,true); } function addEvent(obj, evType, fn, useCapture){ if (!obj) return; if (obj.addEventListener){ obj.addEventListener(evType, fn, useCapture); return true; } else if (obj.attachEvent){ var r = obj.attachEvent("on"+evType, fn); return r; } } /* * This was originally a hack by Jon Hicks * described at http://www.hicksdesign.co.uk/journal/live-comment-previews */ /* live preview of the comment */ function ReloadTextDiv() { var commentString = document.getElementById('message').value; var con = superTextile(commentString); document.getElementById('TextDisplay').innerHTML = con; } /* live preview of the name */ function ReloadNameDiv(event) { var NewText = document.getElementById('name').value; var DivElement = document.getElementById('NameDisplay'); DivElement.innerHTML = NewText; } /* LIVE TEXTILE PREVIEW */ /* * This is the orginial function from Stuart Langridge at http://www.kryogenix.org * updated by Jeff Minard - http://www.jrm.cc * updated again by Nils Hörrmann - http://www.nilshoerrmann.de */ function superTextile(s) { var r = s; // quick tags first qtags = [['\\*', 'strong'], ['\\?\\?', 'cite'], ['\\+', 'ins'], //fixed ['~', 'sub'], ['\\^', 'sup'], // me ['@', 'code']]; for (var i=0;i'+'$1'+''); } // underscores count as part of a word, so do them separately re = new RegExp('\\b_(.+?)_\\b','g'); r = r.replace(re,'$1'); //jeff: so do dashes re = new RegExp('[\s\n]-(.+?)-[\s\n]','g'); r = r.replace(re,'$1'); // links re = new RegExp('\\"\\b(.+?)\\(\\b(.+?)\\b\\)\\":([^\\s]+)','g'); r = r.replace(re,'$1'); re = new RegExp('\\"\\b(.+?)\\b\\":([^\\s]+)','g'); r = r.replace(re,'$1'); // images re = new RegExp('!\\b(.+?)\\(\\b(.+?)\\b\\)!','g'); r = r.replace(re,'\\"$2\\"'); re = new RegExp('!\\b(.+?)\\b!','g'); r = r.replace(re,''); // block level formatting // Jeff's hack to show single line breaks as they should. // insert breaks - but you get some....stupid ones re = new RegExp('(.*)\n([^#\*\n].*)','g'); r = r.replace(re,'$1
$2'); // remove the stupid breaks. re = new RegExp('\n
','g'); r = r.replace(re,'\n'); lines = r.split('\n'); nr = ''; for (var i=0;i')+''; changed = 1; } // jeff adds h#. if (line.search(/^\s*h[1-6]\.\s+/) != -1) { re = new RegExp('h([1-6])\.(.+)','g'); line = line.replace(re,'$2'); changed = 1; } if (line.search(/^\s*\*\s+/) != -1) { line = line.replace(/^\s*\*\s+/,'\t') + ''; changed = 1; } // * for bullet list; make up an liu tag to be fixed later if (line.search(/^\s*#\s+/) != -1) { line = line.replace(/^\s*#\s+/,'\t') + ''; changed = 1; } // # for numeric list; make up an lio tag to be fixed later if (!changed && (line.replace(/\s/g,'').length > 0)) line = '

'+line+'

'; lines[i] = line + '\n'; } // Second pass to do lists inlist = 0; listtype = ''; for (var i=0;i AND r = r.replace(/li[o|u]>/g,'li>'); // Nils added: magic quotes re = new RegExp('\"\\b','g'); r = r.replace(re,'“'); re = new RegExp('\\b\"','g'); r = r.replace(re,'”'); r = r.replace('\"\"','“”','g'); // Nils added: ndash r = r.replace('--','–'); return r; }