import org.sonar.channel.RegexChannel;
+/**
+ * Markdown treats double simple quotes ('') as indicators of code. Text wrapped with two '' will be wrapped with an HTML <code> tag.
+ *
+ * E.g., the input ''printf()'' will produce <code>printf()</code>
+ */
class HtmlCodeChannel extends RegexChannel<MarkdownOutput> {
public HtmlCodeChannel() {
import org.sonar.channel.RegexChannel;
+/**
+ * Markdown treats asterisks (*) as indicators of emphasis. Text wrapped with one * will be wrapped with an HTML <em> tag.
+ *
+ * E.g., the input *word* will produce <em>work</word>
+ */
class HtmlEmphasisChannel extends RegexChannel<MarkdownOutput> {
public HtmlEmphasisChannel() {
import org.sonar.channel.RegexChannel;
+/**
+ * Markdown replace any line return by an HTML <br/>
+ * tag.
+ *
+ */
class HtmlEndOfLineChannel extends RegexChannel<MarkdownOutput> {
public HtmlEndOfLineChannel() {
import org.sonar.channel.RegexChannel;
+/**
+ * Markdown will wrap any URL with an HTML <a href="URL"> tag.
+ *
+ */
class HtmlUrlChannel extends RegexChannel<MarkdownOutput> {
public HtmlUrlChannel() {
@Override
protected void consume(CharSequence token, MarkdownOutput output) {
- output.append("<a href=\"" +token + "\">" + token + "</a>");
+ output.append("<a href=\"" + token + "\">" + token + "</a>");
}
}
import org.sonar.channel.RegexChannel;
+/**
+ * Channel used only to improve performances of the Markdown engine by consuming any sequence of letter or digit.
+ */
class IdentifierAndNumberChannel extends RegexChannel<MarkdownOutput> {
public IdentifierAndNumberChannel() {
import org.sonar.channel.ChannelDispatcher;
import org.sonar.channel.CodeReader;
+/**
+ * Entry point of the Markdown library
+ */
public class MarkdownEngine {
private MarkdownOutput output;
--- /dev/null
+/*
+ * Sonar, open source software quality management tool.
+ * Copyright (C) 2008-2011 SonarSource
+ * mailto:contact AT sonarsource DOT com
+ *
+ * Sonar is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * Sonar is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with Sonar; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02
+ */
+/**
+ * Basic implementation of the Markdown markup language (see http://en.wikipedia.org/wiki/Markdown)
+ *
+ */
+package org.sonar.markdown;
+