1 18 19 package org.apache.roller.ui.rendering.plugins; 20 21 import java.io.BufferedReader ; 22 import java.io.StringReader ; 23 import java.util.Map ; 24 import org.apache.commons.logging.Log; 25 import org.apache.commons.logging.LogFactory; 26 import org.apache.roller.RollerException; 27 import org.apache.roller.pojos.WeblogEntryData; 28 import org.apache.roller.pojos.WebsiteData; 29 import org.apache.roller.model.WeblogEntryPlugin; 30 31 32 46 public class ConvertLineBreaksPlugin implements WeblogEntryPlugin { 47 48 private static Log mLogger = LogFactory.getLog(ConvertLineBreaksPlugin.class); 49 50 private static final String name = "Convert Line Breaks"; 51 private static final String description = "Convert plain text paragraphs to html by adding p and br tags"; 52 private static final String version = "0.1"; 53 54 55 public ConvertLineBreaksPlugin() { 56 mLogger.debug("Instantiating ConvertLineBreaksPlugin v"+this.version); 57 } 58 59 60 public String getName() { 61 return name; 62 } 63 64 65 public String getDescription() { 66 return description; 67 } 68 69 70 public void init(WebsiteData website) throws RollerException { 71 mLogger.debug("initing"); 73 } 74 75 76 80 public String render(WeblogEntryData entry, String str) { 81 82 if(str == null || str.trim().equals("")) 83 return ""; 84 85 mLogger.debug("Rendering string of length "+str.length()); 86 87 92 StringBuffer buf = new StringBuffer (); 93 try { 94 BufferedReader br = new BufferedReader (new StringReader (str)); 95 96 String line = null; 97 boolean insidePara = false; 98 while((line = br.readLine()) != null) { 99 100 if(!insidePara && line.trim().length() > 0) { 101 buf.append("\n<p>"); 103 buf.append(line); 104 insidePara = true; 105 } else if(insidePara && line.trim().length() > 0) { 106 buf.append("<br/>\n"); 108 buf.append(line); 109 } else if(insidePara && line.trim().length() < 1) { 110 buf.append("</p>\n\n"); 112 insidePara = false; 113 } 114 } 115 116 if(insidePara) 119 buf.append("</p>\n\n"); 120 121 } catch(Exception e) { 122 mLogger.warn("trouble rendering text.", e); 123 return str; 124 } 125 126 return buf.toString(); 127 } 128 129 } 130 | Popular Tags |