From 13417cf9c6eec555b51da49742e47939d2f5715b Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Fri, 19 Oct 2012 22:47:33 -0400 Subject: [PATCH] Exclude submodules from zip downloads (issue 151) --- src/com/gitblit/utils/MarkdownUtils.java | 58 +++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 37 insertions(+), 21 deletions(-) diff --git a/src/com/gitblit/utils/MarkdownUtils.java b/src/com/gitblit/utils/MarkdownUtils.java index 15d59cf..0b8c9c5 100644 --- a/src/com/gitblit/utils/MarkdownUtils.java +++ b/src/com/gitblit/utils/MarkdownUtils.java @@ -20,46 +20,63 @@ import java.io.StringReader; import java.io.StringWriter; +import org.slf4j.LoggerFactory; import org.tautua.markdownpapers.Markdown; import org.tautua.markdownpapers.parser.ParseException; +/** + * Utility methods for transforming raw markdown text to html. + * + * @author James Moger + * + */ public class MarkdownUtils { + /** + * Returns the html version of the markdown source text. + * + * @param markdown + * @return html version of markdown text + * @throws java.text.ParseException + */ public static String transformMarkdown(String markdown) throws java.text.ParseException { - // Read raw markdown content and transform it to html - StringReader reader = new StringReader(markdown); - StringWriter writer = new StringWriter(); try { - Markdown md = new Markdown(); - md.transform(reader, writer); - return writer.toString(); - } catch (ParseException p) { - throw new java.text.ParseException(p.getMessage(), 0); - } finally { + StringReader reader = new StringReader(markdown); + String html = transformMarkdown(reader); reader.close(); - try { - writer.close(); - } catch (IOException e) { - // IGNORE - } + return html; + } catch (IllegalArgumentException e) { + throw new java.text.ParseException(e.getMessage(), 0); + } catch (NullPointerException p) { + throw new java.text.ParseException("Markdown string is null!", 0); } } + /** + * Returns the html version of the markdown source reader. The reader is + * closed regardless of success or failure. + * + * @param markdownReader + * @return html version of the markdown text + * @throws java.text.ParseException + */ public static String transformMarkdown(Reader markdownReader) throws java.text.ParseException { // Read raw markdown content and transform it to html StringWriter writer = new StringWriter(); try { Markdown md = new Markdown(); md.transform(markdownReader, writer); - return writer.toString(); + return writer.toString().trim(); + } catch (StringIndexOutOfBoundsException e) { + LoggerFactory.getLogger(MarkdownUtils.class).error("MarkdownPapers failed to parse Markdown!", e); + throw new java.text.ParseException(e.getMessage(), 0); } catch (ParseException p) { + LoggerFactory.getLogger(MarkdownUtils.class).error("MarkdownPapers failed to parse Markdown!", p); throw new java.text.ParseException(p.getMessage(), 0); + } catch (Exception e) { + LoggerFactory.getLogger(MarkdownUtils.class).error("MarkdownPapers failed to parse Markdown!", e); + throw new java.text.ParseException(e.getMessage(), 0); } finally { - try { - markdownReader.close(); - } catch (IOException e) { - // IGNORE - } try { writer.close(); } catch (IOException e) { @@ -67,5 +84,4 @@ } } } - } -- Gitblit v1.9.1