ソースを参照

Replaced MarkdownPapers with pegdown

Change-Id: I11eb50ba1ef0bef8ac47bf6f7b17e0f79ecd3f2d
tags/v1.4.0
James Moger 10年前
コミット
0365f6248d

+ 7
- 1
.classpath ファイルの表示

<classpathentry kind="lib" path="ext/lucene-memory-3.6.1.jar" sourcepath="ext/src/lucene-memory-3.6.1.jar" /> <classpathentry kind="lib" path="ext/lucene-memory-3.6.1.jar" sourcepath="ext/src/lucene-memory-3.6.1.jar" />
<classpathentry kind="lib" path="ext/lucene-queries-3.6.1.jar" sourcepath="ext/src/lucene-queries-3.6.1.jar" /> <classpathentry kind="lib" path="ext/lucene-queries-3.6.1.jar" sourcepath="ext/src/lucene-queries-3.6.1.jar" />
<classpathentry kind="lib" path="ext/jakarta-regexp-1.4.jar" /> <classpathentry kind="lib" path="ext/jakarta-regexp-1.4.jar" />
<classpathentry kind="lib" path="ext/markdownpapers-core-1.3.2.jar" sourcepath="ext/src/markdownpapers-core-1.3.2.jar" />
<classpathentry kind="lib" path="ext/pegdown-1.4.1.jar" sourcepath="ext/src/pegdown-1.4.1.jar" />
<classpathentry kind="lib" path="ext/parboiled-java-1.1.5.jar" sourcepath="ext/src/parboiled-java-1.1.5.jar" />
<classpathentry kind="lib" path="ext/parboiled-core-1.1.5.jar" sourcepath="ext/src/parboiled-core-1.1.5.jar" />
<classpathentry kind="lib" path="ext/asm-4.1.jar" sourcepath="ext/src/asm-4.1.jar" />
<classpathentry kind="lib" path="ext/asm-tree-4.1.jar" sourcepath="ext/src/asm-tree-4.1.jar" />
<classpathentry kind="lib" path="ext/asm-analysis-4.1.jar" sourcepath="ext/src/asm-analysis-4.1.jar" />
<classpathentry kind="lib" path="ext/asm-util-4.1.jar" sourcepath="ext/src/asm-util-4.1.jar" />
<classpathentry kind="lib" path="ext/org.eclipse.jgit-3.1.0.201310021548-r.jar" sourcepath="ext/src/org.eclipse.jgit-3.1.0.201310021548-r.jar" /> <classpathentry kind="lib" path="ext/org.eclipse.jgit-3.1.0.201310021548-r.jar" sourcepath="ext/src/org.eclipse.jgit-3.1.0.201310021548-r.jar" />
<classpathentry kind="lib" path="ext/jsch-0.1.46.jar" sourcepath="ext/src/jsch-0.1.46.jar" /> <classpathentry kind="lib" path="ext/jsch-0.1.46.jar" sourcepath="ext/src/jsch-0.1.46.jar" />
<classpathentry kind="lib" path="ext/JavaEWAH-0.5.6.jar" sourcepath="ext/src/JavaEWAH-0.5.6.jar" /> <classpathentry kind="lib" path="ext/JavaEWAH-0.5.6.jar" sourcepath="ext/src/JavaEWAH-0.5.6.jar" />

+ 9
- 9
NOTICE ファイルの表示

https://github.com/wicketstuff/core/wiki/GoogleCharts https://github.com/wicketstuff/core/wiki/GoogleCharts
---------------------------------------------------------------------------
MarkdownPapers
---------------------------------------------------------------------------
MarkdownPapers, released under the
Apache Software License, Version 2.0.
http://markdown.tautua.org
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
Jetty Jetty
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
Apache License 2.0. Apache License 2.0.
http://commons.apache.org/proper/commons-codec http://commons.apache.org/proper/commons-codec
---------------------------------------------------------------------------
pegdown
---------------------------------------------------------------------------
pegdown, release under the
Apache License 2.0.
https://github.com/sirthias/pegdown

+ 1
- 1
build.moxie ファイルの表示

- compile 'org.apache.lucene:lucene-core:${lucene.version}' :war :fedclient - compile 'org.apache.lucene:lucene-core:${lucene.version}' :war :fedclient
- compile 'org.apache.lucene:lucene-highlighter:${lucene.version}' :war :fedclient - compile 'org.apache.lucene:lucene-highlighter:${lucene.version}' :war :fedclient
- compile 'org.apache.lucene:lucene-memory:${lucene.version}' :war :fedclient - compile 'org.apache.lucene:lucene-memory:${lucene.version}' :war :fedclient
- compile 'org.tautua.markdownpapers:markdownpapers-core:1.3.2' :war
- compile 'org.pegdown:pegdown:1.4.1' :war
- compile 'org.eclipse.jgit:org.eclipse.jgit:${jgit.version}' :war :fedclient :manager :authority - compile 'org.eclipse.jgit:org.eclipse.jgit:${jgit.version}' :war :fedclient :manager :authority
- compile 'org.eclipse.jgit:org.eclipse.jgit.http.server:${jgit.version}' :war :fedclient :manager :authority - compile 'org.eclipse.jgit:org.eclipse.jgit.http.server:${jgit.version}' :war :fedclient :manager :authority
- compile 'org.bouncycastle:bcprov-jdk15on:${bouncycastle.version}' :war :authority - compile 'org.bouncycastle:bcprov-jdk15on:${bouncycastle.version}' :war :authority

+ 69
- 3
gitblit.iml ファイルの表示

</library> </library>
</orderEntry> </orderEntry>
<orderEntry type="module-library"> <orderEntry type="module-library">
<library name="markdownpapers-core-1.3.2.jar">
<library name="pegdown-1.4.1.jar">
<CLASSES> <CLASSES>
<root url="jar://$MODULE_DIR$/ext/markdownpapers-core-1.3.2.jar!/" />
<root url="jar://$MODULE_DIR$/ext/pegdown-1.4.1.jar!/" />
</CLASSES> </CLASSES>
<JAVADOC /> <JAVADOC />
<SOURCES> <SOURCES>
<root url="jar://$MODULE_DIR$/ext/src/markdownpapers-core-1.3.2.jar!/" />
<root url="jar://$MODULE_DIR$/ext/src/pegdown-1.4.1.jar!/" />
</SOURCES>
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="parboiled-java-1.1.5.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/ext/parboiled-java-1.1.5.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$MODULE_DIR$/ext/src/parboiled-java-1.1.5.jar!/" />
</SOURCES>
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="parboiled-core-1.1.5.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/ext/parboiled-core-1.1.5.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$MODULE_DIR$/ext/src/parboiled-core-1.1.5.jar!/" />
</SOURCES>
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="asm-4.1.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/ext/asm-4.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$MODULE_DIR$/ext/src/asm-4.1.jar!/" />
</SOURCES>
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="asm-tree-4.1.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/ext/asm-tree-4.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$MODULE_DIR$/ext/src/asm-tree-4.1.jar!/" />
</SOURCES>
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="asm-analysis-4.1.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/ext/asm-analysis-4.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$MODULE_DIR$/ext/src/asm-analysis-4.1.jar!/" />
</SOURCES>
</library>
</orderEntry>
<orderEntry type="module-library">
<library name="asm-util-4.1.jar">
<CLASSES>
<root url="jar://$MODULE_DIR$/ext/asm-util-4.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES>
<root url="jar://$MODULE_DIR$/ext/src/asm-util-4.1.jar!/" />
</SOURCES> </SOURCES>
</library> </library>
</orderEntry> </orderEntry>

+ 1
- 0
releases.moxie ファイルの表示

dependencyChanges: dependencyChanges:
- updated to Jetty 7.6.13 - updated to Jetty 7.6.13
- updated to JGit 3.1.0 - updated to JGit 3.1.0
- replaced MarkdownPapers with pegdown 1.4.1
settings: settings:
- { name: 'git.createRepositoriesShared', defaultValue: 'false' } - { name: 'git.createRepositoriesShared', defaultValue: 'false' }
- { name: 'git.allowAnonymousPushes', defaultValue: 'false' } - { name: 'git.allowAnonymousPushes', defaultValue: 'false' }

+ 1
- 2
src/main/java/com/gitblit/GitBlit.java ファイルの表示

import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.security.Principal; import java.security.Principal;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
try { try {
String prepared = processCommitMessageRegex(repository.name, text); String prepared = processCommitMessageRegex(repository.name, text);
return MarkdownUtils.transformMarkdown(prepared); return MarkdownUtils.transformMarkdown(prepared);
} catch (ParseException e) {
} catch (Exception e) {
logger.error("Failed to render commit message as markdown", e); logger.error("Failed to render commit message as markdown", e);
} }
break; break;

+ 12
- 28
src/main/java/com/gitblit/utils/MarkdownUtils.java ファイルの表示

*/ */
package com.gitblit.utils; package com.gitblit.utils;
import static org.pegdown.Extensions.ALL;
import java.io.IOException; import java.io.IOException;
import java.io.Reader; import java.io.Reader;
import java.io.StringReader;
import java.io.StringWriter; import java.io.StringWriter;
import org.slf4j.LoggerFactory;
import org.tautua.markdownpapers.Markdown;
import org.tautua.markdownpapers.parser.ParseException;
import org.apache.commons.io.IOUtils;
import org.pegdown.PegDownProcessor;
/** /**
* Utility methods for transforming raw markdown text to html. * Utility methods for transforming raw markdown text to html.
* @return html version of markdown text * @return html version of markdown text
* @throws java.text.ParseException * @throws java.text.ParseException
*/ */
public static String transformMarkdown(String markdown) throws java.text.ParseException {
try {
StringReader reader = new StringReader(markdown);
String html = transformMarkdown(reader);
reader.close();
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);
}
public static String transformMarkdown(String markdown) {
PegDownProcessor pd = new PegDownProcessor(ALL);
String html = pd.markdownToHtml(markdown);
return html;
} }
/** /**
* @return html version of the markdown text * @return html version of the markdown text
* @throws java.text.ParseException * @throws java.text.ParseException
*/ */
public static String transformMarkdown(Reader markdownReader) throws java.text.ParseException {
public static String transformMarkdown(Reader markdownReader) throws IOException {
// Read raw markdown content and transform it to html // Read raw markdown content and transform it to html
StringWriter writer = new StringWriter(); StringWriter writer = new StringWriter();
try { try {
Markdown md = new Markdown();
md.transform(markdownReader, writer);
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);
IOUtils.copy(markdownReader, writer);
String markdown = writer.toString();
return transformMarkdown(markdown);
} finally { } finally {
try { try {
writer.close(); writer.close();

+ 2
- 2
src/main/java/com/gitblit/wicket/pages/MarkdownPage.java ファイルの表示

package com.gitblit.wicket.pages; package com.gitblit.wicket.pages;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.text.ParseException;
import org.apache.wicket.PageParameters; import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.basic.Label;
String htmlText; String htmlText;
try { try {
htmlText = MarkdownUtils.transformMarkdown(markdownText); htmlText = MarkdownUtils.transformMarkdown(markdownText);
} catch (ParseException p) {
} catch (Exception e) {
logger.error("failed to transform markdown", e);
markdownText = MessageFormat.format("<div class=\"alert alert-error\"><strong>{0}:</strong> {1}</div>{2}", getString("gb.error"), getString("gb.markdownFailure"), markdownText); markdownText = MessageFormat.format("<div class=\"alert alert-error\"><strong>{0}:</strong> {1}</div>{2}", getString("gb.error"), getString("gb.markdownFailure"), markdownText);
htmlText = StringUtils.breakLinesForHtml(markdownText); htmlText = StringUtils.breakLinesForHtml(markdownText);
} }

+ 1
- 1
src/main/java/com/gitblit/wicket/pages/RepositoryPage.java ファイルの表示

public abstract class RepositoryPage extends RootPage { public abstract class RepositoryPage extends RootPage {
private final Logger logger = LoggerFactory.getLogger(getClass());
protected final Logger logger = LoggerFactory.getLogger(getClass());
private final String PARAM_STAR = "star"; private final String PARAM_STAR = "star";

+ 2
- 2
src/main/java/com/gitblit/wicket/pages/SummaryPage.java ファイルの表示

import java.awt.Color; import java.awt.Color;
import java.awt.Dimension; import java.awt.Dimension;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.text.ParseException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
markdownText = JGitUtils.getStringContent(r, head.getTree(), readme, encodings); markdownText = JGitUtils.getStringContent(r, head.getTree(), readme, encodings);
htmlText = MarkdownUtils.transformMarkdown(markdownText); htmlText = MarkdownUtils.transformMarkdown(markdownText);
} }
} catch (ParseException p) {
} catch (Exception e) {
logger.error("failed to transform markdown", e);
markdownText = MessageFormat.format("<div class=\"alert alert-error\"><strong>{0}:</strong> {1}</div>{2}", getString("gb.error"), getString("gb.markdownFailure"), markdownText); markdownText = MessageFormat.format("<div class=\"alert alert-error\"><strong>{0}:</strong> {1}</div>{2}", getString("gb.error"), getString("gb.markdownFailure"), markdownText);
htmlText = StringUtils.breakLinesForHtml(markdownText); htmlText = StringUtils.breakLinesForHtml(markdownText);
} }

+ 1
- 1
src/site/design.mkd ファイルの表示

- [JGit][jgit] (EDL 1.0) - [JGit][jgit] (EDL 1.0)
- [Wicket](http://wicket.apache.org) (Apache 2.0) - [Wicket](http://wicket.apache.org) (Apache 2.0)
- [WicketStuff GoogleCharts](https://github.com/wicketstuff/core/wiki/GoogleCharts) (Apache 2.0) - [WicketStuff GoogleCharts](https://github.com/wicketstuff/core/wiki/GoogleCharts) (Apache 2.0)
- [MarkdownPapers](http://markdown.tautua.org) (Apache 2.0)
- [Jetty](http://eclipse.org/jetty) (Apache 2.0, EPL 1.0) - [Jetty](http://eclipse.org/jetty) (Apache 2.0, EPL 1.0)
- [SLF4J](http://www.slf4j.org) (MIT/X11) - [SLF4J](http://www.slf4j.org) (MIT/X11)
- [Log4j](http://logging.apache.org/log4j) (Apache 2.0) - [Log4j](http://logging.apache.org/log4j) (Apache 2.0)
- [Guava](https://code.google.com/p/guava-libraries) (Apache 2.0) - [Guava](https://code.google.com/p/guava-libraries) (Apache 2.0)
- [libpam4j](https://github.com/kohsuke/libpam4j) (MIT) - [libpam4j](https://github.com/kohsuke/libpam4j) (MIT)
- [commons-codec](http://commons.apache.org/proper/commons-codec) (Apache 2.0) - [commons-codec](http://commons.apache.org/proper/commons-codec) (Apache 2.0)
- [pegdown](https://github.com/sirthias/pegdown) (Apache 2.0)
### Other Build Dependencies ### Other Build Dependencies
- [Fancybox image viewer](http://fancybox.net) (MIT and GPL dual-licensed) - [Fancybox image viewer](http://fancybox.net) (MIT and GPL dual-licensed)

+ 2
- 12
src/test/java/com/gitblit/tests/MarkdownUtilsTest.java ファイルの表示

package com.gitblit.tests; package com.gitblit.tests;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.text.ParseException;
import org.junit.Test; import org.junit.Test;
@Test @Test
public void testMarkdown() throws Exception { public void testMarkdown() throws Exception {
assertEquals("<h1> H1</h1>", MarkdownUtils.transformMarkdown("# H1"));
assertEquals("<h2> H2</h2>", MarkdownUtils.transformMarkdown("## H2"));
assertEquals("<h1>H1</h1>", MarkdownUtils.transformMarkdown("# H1"));
assertEquals("<h2>H2</h2>", MarkdownUtils.transformMarkdown("## H2"));
assertEquals("<p><strong>THIS</strong> is a test</p>", assertEquals("<p><strong>THIS</strong> is a test</p>",
MarkdownUtils.transformMarkdown("**THIS** is a test")); MarkdownUtils.transformMarkdown("**THIS** is a test"));
assertEquals("<p>** THIS ** is a test</p>", assertEquals("<p>** THIS ** is a test</p>",
MarkdownUtils.transformMarkdown("<table><tr><td>test</td></tr></table>")); MarkdownUtils.transformMarkdown("<table><tr><td>test</td></tr></table>"));
assertEquals("<table><tr><td>&lt;test&gt;</td></tr></table>", assertEquals("<table><tr><td>&lt;test&gt;</td></tr></table>",
MarkdownUtils.transformMarkdown("<table><tr><td>&lt;test&gt;</td></tr></table>")); MarkdownUtils.transformMarkdown("<table><tr><td>&lt;test&gt;</td></tr></table>"));
try {
MarkdownUtils.transformMarkdown((String) null);
assertTrue(false);
} catch (ParseException p) {
assertTrue(p != null);
}
} }
} }

読み込み中…
キャンセル
保存