Ville Saalo avatar Ville Saalo committed ba9d176 Merge

Comments (0)

Files changed (3)

 - [Prettify](http://code.google.com/p/google-code-prettify/)
 - [JavaScript Creole 1.0 Wiki Markup Parser](http://www.ivan.fomichev.name/2008/04/javascript-creole-10-wiki-markup-parser.html)
 - [markdown-js, A Markdown parser for javascript](https://github.com/evilstreak/markdown-js)
+- [MarkdownJ](http://markdownj.org/)
 - [Sample codes from The Busy Coder's Guide to Android Development!](https://github.com/commonsguy/cw-omnibus)
 - [Android SeekBar preference](http://robobunny.com/wp/2011/08/13/android-seekbar-preference/)
 
Add a comment to this file

libs/markdownj-1.0.2b4-0.3.0.jar

Binary file added.

src/com/saibotd/bitbeaker/MarkupHelper.java

 import android.text.TextUtils;
 import android.util.Patterns;
 
+import com.petebevin.markdown.MarkdownProcessor;
+
 public class MarkupHelper {
 	
 	private static final String LINK_TAG = "[[";
 	private static final String HTML_HREF_ATTR_END = "\">";
 	private static final String HTML_LINK_TAG_END = "</a>";
+	private static MarkdownProcessor m = new MarkdownProcessor();
 	
 	/**
 	 * Add Bitbucket's markup support for comments and issue descriptions to TextView
 	 * @return Spanned ready to TextView.setText()
 	 */
 	public static Spanned handleMarkup(String input, String owner, String slug) {
-		return Html.fromHtml(handleMarkupAsString(input, owner, slug));
+		input = m.markdown(input);
+		//input = getEmailAddressesLinkified(input);
+		//input = getBareUrlsLinkified(input);
+
+		// android.text.Html.fromHtml flips styles of <em> and <strong> and we don't like that
+		input = input.replaceAll("<em>(.+?)</em>", "<i>$1</i>");
+		input = input.replaceAll("<strong>(.+?)</strong>", "<b>$1</b>");
+
+		input = input.replaceAll("#(\\d+)", "<a href=\"https://bitbucket.org/"+owner+"/"+slug+"/issue/$1\">#$1</a>");
+		input = input.replaceAll("(?<!\\w)@([\\w\\d_]{1,30})", "<a href=\"https://bitbucket.org/$1\">@$1</a>"); // username up to 30 chars: letters, numbers, underscores
+		input = input.replaceAll("([a-fA-F0-9]{7,40})", "<a href=\"https://bitbucket.org/"+owner+"/"+slug+"/changeset/$1\">$1</a>");// changeset 7-40 hex chars
+		return Html.fromHtml(input);
+		//return Html.fromHtml(handleMarkupAsString(input, owner, slug));
 	}
 	
 	private static String handleMarkupAsString(String input, String owner, String slug) {
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.