ClassicToCreoleTranslator.java |
1 /** 2 * Copyright (c) 2000-2009 Liferay, Inc. All rights reserved. 3 * 4 * Permission is hereby granted, free of charge, to any person obtaining a copy 5 * of this software and associated documentation files (the "Software"), to deal 6 * in the Software without restriction, including without limitation the rights 7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 * copies of the Software, and to permit persons to whom the Software is 9 * furnished to do so, subject to the following conditions: 10 * 11 * The above copyright notice and this permission notice shall be included in 12 * all copies or substantial portions of the Software. 13 * 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 20 * SOFTWARE. 21 */ 22 23 package com.liferay.portlet.wiki.translators; 24 25 /** 26 * <a href="ClassicToCreoleTranslator.java.html"><b><i>View Source</i></b></a> 27 * 28 * @author Jorge Ferrer 29 */ 30 public class ClassicToCreoleTranslator extends BaseTranslator { 31 32 public ClassicToCreoleTranslator() { 33 initRegexps(); 34 } 35 36 protected void initRegexps() { 37 38 // Bold and italics 39 40 regexps.put( 41 "'''''((?s:.)*?)('''''|(\n\n|\r\r|\r\n\r\n))", "**//$1//**$3"); 42 43 // Bold 44 45 regexps.put("'''((?s:.)*?)('''|(\n\n|\r\r|\r\n\r\n))", "**$1**$3"); 46 47 // Italics 48 49 regexps.put("''((?s:.)*?)(''|(\n\n|\r\r|\r\n\r\n))", "//$1//$3"); 50 51 // Link 52 53 regexps.put("\\[([^ ]*)\\]", "[[$1]]"); 54 55 // Link with label 56 57 regexps.put("\\[([^ ]+) (.*)\\]", "[[$1|$2]]"); 58 59 // Monospace 60 61 regexps.put("(^ (.+))(\\n (.+))*", "{{{\n$0\n}}}"); 62 63 // List item 64 65 regexps.put("^\\t[\\*] (.*)", "* $1"); 66 67 // List subitem 68 69 regexps.put("^\\t\\t[\\*] (.*)", "** $1"); 70 71 // List subsubitem 72 73 regexps.put("^\\t\\t\\t[\\*] (.*)", "*** $1"); 74 75 // List subsubsubitem 76 77 regexps.put("^\\t\\t\\t\\t[\\*] (.*)", "**** $1"); 78 79 // Ordered list item 80 81 regexps.put("^\\t1 (.*)", "# $1"); 82 83 // Ordered list subitem 84 85 regexps.put("^\\t\\t1 (.*)", "## $1"); 86 87 // Ordered list subsubitem 88 89 regexps.put("^\\t\\t\\t1 (.*)", "### $1"); 90 91 // Ordered list subsubsubitem 92 93 regexps.put("^\\t\\t\\t\\t1 (.*)", "#### $1"); 94 95 // Term and definition 96 97 regexps.put("^\\t([\\w]+):\\t(.*)", "**$1**:\n$2"); 98 99 // Indented paragraph 100 101 regexps.put("^\\t:\\t(.*)", "$1"); 102 103 // CamelCase 104 105 regexps.put( 106 "(^|\\p{Punct}|\\p{Space})((\\p{Lu}\\p{Ll}+){2,})" + 107 "(\\z|\\n|\\p{Punct}|\\p{Space})", " [[$2]] "); 108 } 109 110 }