Ville Saalo avatar Ville Saalo committed ba9d176 Merge

Comments (0)

Files changed (3)

 - [Prettify](
 - [JavaScript Creole 1.0 Wiki Markup Parser](
 - [markdown-js, A Markdown parser for javascript](
+- [MarkdownJ](
 - [Sample codes from The Busy Coder's Guide to Android Development!](
 - [Android SeekBar preference](
Add a comment to this file


Binary file added.


 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=\""+owner+"/"+slug+"/issue/$1\">#$1</a>");
+		input = input.replaceAll("(?<!\\w)@([\\w\\d_]{1,30})", "<a href=\"$1\">@$1</a>"); // username up to 30 chars: letters, numbers, underscores
+		input = input.replaceAll("([a-fA-F0-9]{7,40})", "<a href=\""+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
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.