[
https://issues.apache.org/jira/browse/DOXIA-569?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17652558#comment-17652558
]
ASF GitHub Bot commented on DOXIA-569:
--------------------------------------
michael-o commented on code in PR #128:
URL: https://github.com/apache/maven-doxia/pull/128#discussion_r1058507342
##########
doxia-core/src/test/java/org/apache/maven/doxia/sink/impl/AbstractSinkTest.java:
##########
@@ -492,7 +492,7 @@ public void testFooter()
* the same result as {@link #getListBlock getListBlock}( item ).
*
*/
- public void testList()
+ public void _testList()
{
Review Comment:
Why this change?
##########
doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownMarkup.java:
##########
@@ -0,0 +1,147 @@
+package org.apache.maven.doxia.module.markdown;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import org.apache.maven.doxia.markup.TextMarkup;
+import org.codehaus.plexus.util.StringUtils;
+
+/**
+ * This interface defines all markups and syntaxes used by the <b>Markdown</b>
format.
+ */
+@SuppressWarnings( "checkstyle:interfaceistype" )
+public interface MarkdownMarkup
+ extends TextMarkup
+{
+ // ----------------------------------------------------------------------
+ // Markup separators
+ // ----------------------------------------------------------------------
+
+ /** APT backslash markup char: '\\' */
Review Comment:
Still should be fixed.
##########
doxia-modules/doxia-module-markdown/src/main/java/org/apache/maven/doxia/module/markdown/MarkdownSink.java:
##########
@@ -0,0 +1,1163 @@
+package org.apache.maven.doxia.module.markdown;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.io.PrintWriter;
+import java.io.Writer;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Stack;
+
+import org.apache.maven.doxia.sink.SinkEventAttributes;
+import org.apache.maven.doxia.sink.impl.AbstractTextSink;
+import org.apache.maven.doxia.sink.impl.SinkEventAttributeSet;
+import org.codehaus.plexus.util.StringUtils;
+
+/**
+ * Markdown generator implementation.
+ * <br>
+ * <b>Note</b>: The encoding used is UTF-8.
+ */
+public class MarkdownSink
+ extends AbstractTextSink
+ implements MarkdownMarkup
+{
+ // ----------------------------------------------------------------------
+ // Instance fields
+ // ----------------------------------------------------------------------
+
+ /** A buffer that holds the current text when headerFlag or bufferFlag
set to <code>true</code>. */
+ private StringBuffer buffer;
+
+ /** A buffer that holds the table caption. */
+ private StringBuilder tableCaptionBuffer;
+
+ /** author. */
+ private String author;
+
+ /** title. */
+ private String title;
+
+ /** date. */
+ private String date;
+
+ /** linkName. */
+ private String linkName;
+
+ /** startFlag. */
+ private boolean startFlag;
+
+ /** tableCaptionFlag. */
+ private boolean tableCaptionFlag;
+
+ /** tableCellFlag. */
+ private boolean tableCellFlag;
+
+ /** headerFlag. */
+ private boolean headerFlag;
+
+ /** bufferFlag. */
+ private boolean bufferFlag;
+
+ /** itemFlag. */
+ private boolean itemFlag;
+
+ /** verbatimFlag. */
+ private boolean verbatimFlag;
+
+ /** gridFlag for tables. */
+ private boolean gridFlag;
+
+ /** number of cells in a table. */
+ private int cellCount;
+
+ /** The writer to use. */
+ private final PrintWriter writer;
+
+ /** justification of table cells. */
+ private int[] cellJustif;
+
+ /** a line of a row in a table. */
+ private String rowLine;
+
+ /** is header row */
+ private boolean headerRow;
+
+ /** listNestingIndent. */
+ private String listNestingIndent;
+
+ /** listStyles. */
+ private final Stack<String> listStyles;
+
+ /** Keep track of the closing tags for inline events. */
+ protected Stack<List<String>> inlineStack = new Stack<>();
+
+ // ----------------------------------------------------------------------
+ // Public protected methods
+ // ----------------------------------------------------------------------
+
+ /**
+ * Constructor, initialize the Writer and the variables.
+ *
+ * @param writer not null writer to write the result. <b>Should</b> be an
UTF-8 Writer.
+ */
+ protected MarkdownSink( Writer writer )
+ {
+ this.writer = new PrintWriter( writer );
+ this.listStyles = new Stack<>();
+
+ init();
+ }
+
+ /**
+ * Returns the buffer that holds the current text.
+ *
+ * @return A StringBuffer.
+ */
+ protected StringBuffer getBuffer()
+ {
+ return buffer;
+ }
+
+ /**
+ * Used to determine whether we are in head mode.
+ *
+ * @param headFlag True for head mode.
+ */
+ protected void setHeadFlag( boolean headFlag )
+ {
+ this.headerFlag = headFlag;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ protected void init()
+ {
+ super.init();
+
+ resetBuffer();
+
+ this.tableCaptionBuffer = new StringBuilder();
+ this.listNestingIndent = "";
+
+ this.author = null;
+ this.title = null;
+ this.date = null;
+ this.linkName = null;
+ this.startFlag = true;
+ this.tableCaptionFlag = false;
+ this.tableCellFlag = false;
+ this.headerFlag = false;
+ this.bufferFlag = false;
+ this.itemFlag = false;
+ this.verbatimFlag = false;
+ this.gridFlag = false;
+ this.cellCount = 0;
+ this.cellJustif = null;
+ this.rowLine = null;
+ this.listStyles.clear();
+ this.inlineStack.clear();
+ }
+
+ /**
+ * Reset the StringBuilder.
+ */
+ protected void resetBuffer()
+ {
+ buffer = new StringBuffer();
+ }
+
+ /**
+ * Reset the TableCaptionBuffer.
+ */
+ protected void resetTableCaptionBuffer()
+ {
+ tableCaptionBuffer = new StringBuilder();
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void head()
+ {
+ boolean startFlag = this.startFlag;
+
+ init();
+
+ headerFlag = true;
+ this.startFlag = startFlag;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void head_()
+ {
+ headerFlag = false;
+
+ if ( ! startFlag )
+ {
+ write( EOL );
+ }
+ // TODO add -
> Add Markdown Sink to be able to convert anything to Markdown
> ------------------------------------------------------------
>
> Key: DOXIA-569
> URL: https://issues.apache.org/jira/browse/DOXIA-569
> Project: Maven Doxia
> Issue Type: New Feature
> Components: Module - Markdown
> Affects Versions: 1.8
> Reporter: Herve Boutemy
> Priority: Major
> Labels: intern
>
> Markdown is well known: having Markdown Sink would help people transform
> existing content to Markdown
--
This message was sent by Atlassian Jira
(v8.20.10#820010)