/* ************************************************************************ qooxdoo - the new era of web development http://qooxdoo.org Copyright: 2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org License: LGPL 2.1: http://www.gnu.org/licenses/lgpl.html Authors: * Sebastian Werner (wpbasti) * Andreas Ecker (ecker) ************************************************************************ */ /* ************************************************************************ ************************************************************************ */ /** * Optimized version of SuperTextile */ qx.OO.defineClass("qx.util.Textile"); /** * ATTENTION: Deprecated module. Will be removed with qooxdoo 0.7. * * Textilizes a string * http://www.creatimation.net/journal/textile-live-preview (offline) * * @param s {string} Text to be textilized. * @return {string} The textilized text. */ qx.util.Textile.textilize = function(s) { var r = s; // quick tags first var qtags = [ ["\\*", "strong"], ["\\?\\?", "cite"], ["\\+", "ins"], ["~", "sub"], ["\\^", "sup"], ["@", "code"] ]; var ttag, htag, re, line, lines, nr, changed, inlist, listtype; 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) { // for bullet list; make up an liu tag to be fixed later line = line.replace(/^\s*\*\s+/,"\t") + ""; changed = 1; } if (line.search(/^\s*#\s+/) != -1) { // # for numeric list; make up an lio tag to be fixed later line = line.replace(/^\s*#\s+/,"\t") + ""; changed = 1; } 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>"); return r; }