svn commit: r418874 - in /maven/doxia/trunk: doxia-doc-renderer/ doxia-site-renderer/
Author: trygvis Date: Mon Jul 3 16:32:28 2006 New Revision: 418874 URL: http://svn.apache.org/viewvc?rev=418874&view=rev Log: o Setting svn:ignore. Modified: maven/doxia/trunk/doxia-doc-renderer/ (props changed) maven/doxia/trunk/doxia-site-renderer/ (props changed) Propchange: maven/doxia/trunk/doxia-doc-renderer/ -- --- svn:ignore (added) +++ svn:ignore Mon Jul 3 16:32:28 2006 @@ -0,0 +1,8 @@ +target +*~ +*.log +.classpath +.project +*.ipr +*.iws +*.iml Propchange: maven/doxia/trunk/doxia-site-renderer/ -- --- svn:ignore (original) +++ svn:ignore Mon Jul 3 16:32:28 2006 @@ -1,2 +1,8 @@ target +*~ +*.log +.classpath +.project +*.ipr +*.iws *.iml
svn commit: r418875 - in /maven/doxia/trunk/doxia-core/src/main: java/org/apache/maven/doxia/module/latex/ resources/org/ resources/org/apache/ resources/org/apache/maven/ resources/org/apache/maven/d
Author: trygvis Date: Mon Jul 3 16:33:10 2006 New Revision: 418875 URL: http://svn.apache.org/viewvc?rev=418875&view=rev Log: o Cleaning up LaTeX sink. Should be usable by the book system now. Added: maven/doxia/trunk/doxia-core/src/main/resources/org/ maven/doxia/trunk/doxia-core/src/main/resources/org/apache/ maven/doxia/trunk/doxia-core/src/main/resources/org/apache/maven/ maven/doxia/trunk/doxia-core/src/main/resources/org/apache/maven/doxia/ maven/doxia/trunk/doxia-core/src/main/resources/org/apache/maven/doxia/module/ maven/doxia/trunk/doxia-core/src/main/resources/org/apache/maven/doxia/module/latex/ maven/doxia/trunk/doxia-core/src/main/resources/org/apache/maven/doxia/module/latex/default_preamble.tex maven/doxia/trunk/doxia-core/src/main/resources/org/apache/maven/doxia/module/latex/default_sink_commands.tex Modified: maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/latex/LatexSink.java Modified: maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/latex/LatexSink.java URL: http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/latex/LatexSink.java?rev=418875&r1=418874&r2=418875&view=diff == --- maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/latex/LatexSink.java (original) +++ maven/doxia/trunk/doxia-core/src/main/java/org/apache/maven/doxia/module/latex/LatexSink.java Mon Jul 3 16:33:10 2006 @@ -19,19 +19,29 @@ import org.apache.maven.doxia.module.apt.AptParser; import org.apache.maven.doxia.sink.SinkAdapter; import org.apache.maven.doxia.util.LineBreaker; +import org.codehaus.plexus.util.IOUtil; +import org.codehaus.plexus.util.StringUtils; import java.io.Writer; +import java.io.IOException; +import java.io.InputStream; -/** - * @componentx - */ public class LatexSink extends SinkAdapter { private static final String EOL = System.getProperty( "line.separator" ); +/** + * Flag that indicates if the document to be written is only a fragment. + * + * This implies that \\begin{document}, \\ptitle{..} will not be output. + */ +private boolean fragmentDocument; + private LineBreaker out; +private String sinkCommands; + private String preamble; private boolean titleFlag; @@ -52,29 +62,58 @@ private int cellCount; -// --- +private boolean isTitle; + +private String title; + +// -- +// +// -- public LatexSink( Writer out ) +throws IOException { -this( out, defaultPreamble ); +this( out, IOUtil.toString( getDefaultSinkCommands() ), IOUtil.toString( getDefaultPreamble() ) ); } -public LatexSink( Writer out, String preamble ) +public LatexSink( Writer out, String sinkCommands, String preamble ) { this.out = new LineBreaker( out ); -setPreamble( preamble ); +this.sinkCommands = sinkCommands; +this.preamble = preamble; } -public void setPreamble( String preamble ) +public LatexSink( Writer out, String sinkCommands, String preamble, boolean fragmentDocument ) { +this.out = new LineBreaker( out ); +this.sinkCommands = sinkCommands; this.preamble = preamble; +this.fragmentDocument = fragmentDocument; +} + +// -- +// Overridables +// -- + +protected String getDocumentStart() +{ +return "\\documentclass[a4paper]{article}"; +} + +protected String getDocumentBegin() +{ +return "\\begin{document}"; } -public String getPreamble() +protected String getDocumentEnd() { -return preamble; +return "\\end{document}" + EOL; } +// -- +// Sink Implementation +// -- + public void head() { titleFlag = false; @@ -87,13 +126,21 @@ cellJustif = null; cellCount = 0; -markup( preamble ); -markup( "\\begin{document}" + EOL + EOL ); +if ( !fragmentDocument ) +{ +markup( sinkCommands ); + +markup( preamble ); + +markup( getDocumentStart() ); + +markup( getDocumentBegin() ); +} } public void body() { -if ( titleFlag ) +if ( !fragmentDocument && titleFlag ) { titleFlag = false; markup( "\\pmak
svn commit: r418876 - in /maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/maven/ src/main/jav
Author: trygvis Date: Mon Jul 3 16:34:22 2006 New Revision: 418876 URL: http://svn.apache.org/viewvc?rev=418876&view=rev Log: o Adding a Maven plugin to render Doxia Books. Added: maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/ (with props) maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/pom.xml maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/ maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/ maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/ maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/ maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/ maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/ maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/doxia/ maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/doxia/plugin/ maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/doxia/plugin/Book.java maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/doxia/plugin/DoxiaRenderBooksMojo.java Propchange: maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/ -- --- svn:ignore (added) +++ svn:ignore Mon Jul 3 16:34:22 2006 @@ -0,0 +1,8 @@ +target +*~ +*.log +.classpath +.project +*.ipr +*.iws +*.iml Added: maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/pom.xml URL: http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/pom.xml?rev=418876&view=auto == --- maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/pom.xml (added) +++ maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/pom.xml Mon Jul 3 16:34:22 2006 @@ -0,0 +1,24 @@ + + 4.0.0 + +org.apache.maven.doxia +doxia + 1.0-alpha-9-SNAPSHOT + + doxia-maven-plugin + 1.0-alpha-1-SNAPSHOT + maven-plugin + Doxia Maven Plugin + + + org.apache.maven + maven-plugin-api + 2.0 + + + ${project.groupId} + doxia-book + 1.0-alpha-1-SNAPSHOT + + + Added: maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/doxia/plugin/Book.java URL: http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/doxia/plugin/Book.java?rev=418876&view=auto == --- maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/doxia/plugin/Book.java (added) +++ maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/doxia/plugin/Book.java Mon Jul 3 16:34:22 2006 @@ -0,0 +1,45 @@ +package org.apache.maven.doxia.plugin; + +import java.util.List; + +/** + * @author mailto:[EMAIL PROTECTED]">Trygve Laugstøl + * @version $Id$ + */ +public class Book +{ +private String descriptor; + +private List formats; + +private String directory; + +private List includes; + +private List excludes; + +public String getDescriptor() +{ +return descriptor; +} + +public List getFormats() +{ +return formats; +} + +public String getDirectory() +{ +return directory; +} + +public List getIncludes() +{ +return includes; +} + +public List getExcludes() +{ +return excludes; +} +} Added: maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/doxia/plugin/DoxiaRenderBooksMojo.java URL: http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/doxia/plugin/DoxiaRenderBooksMojo.java?rev=418876&view=auto == --- maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/doxia/plugin/DoxiaRenderBooksMojo.java (added) +++ maven/doxia/trunk/doxia-sandbox/doxia-maven-plugin/src/main/java/org/apache/maven/doxia/plugin/DoxiaRenderBooksMojo.java Mon Jul 3 16:34:22 2006 @@ -0,0 +1,191 @@ +package org.apache.maven.doxia.plugin; + +import org.apache.maven.doxia.book.BookDoxia; +import org.apache.maven.doxia.book.BookDoxiaException; +import org.apache.maven.doxia.book.InvalidBookDescriptorException; +import org.apache.maven.doxia.book.services.validation.ValidationResult; +import org.apache.maven.plugin.AbstractMojo; +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugin.MojoFailureException; +import org.codehaus.plexus.util.FileUtils; +import org.codehaus.plexus.util.StringUtils; + +import java.io.File; +import java.io.IOException; +import java.util.Iterator; +import java.util.List; + +/** + * @goal render-books + * + * @author mailto:[EMAIL PROTECTED]">Trygve Laugstøl + * @version $
svn commit: r418877 - in /maven/doxia/trunk/doxia-sandbox/doxia-book/src/main: java/org/apache/maven/doxia/book/services/renderer/ java/org/apache/maven/doxia/book/services/renderer/latex/ java/org/ap
Author: trygvis Date: Mon Jul 3 16:34:53 2006 New Revision: 418877 URL: http://svn.apache.org/viewvc?rev=418877&view=rev Log: o More work done. Adding LaTeX book sink. Added: maven/doxia/trunk/doxia-sandbox/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/LatexBookRenderer.java maven/doxia/trunk/doxia-sandbox/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/latex/ maven/doxia/trunk/doxia-sandbox/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/latex/LatexBookSink.java Modified: maven/doxia/trunk/doxia-sandbox/doxia-book/src/main/java/org/apache/maven/doxia/book/services/validation/DefaultBookValidator.java maven/doxia/trunk/doxia-sandbox/doxia-book/src/main/modello/book.mdo Added: maven/doxia/trunk/doxia-sandbox/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/LatexBookRenderer.java URL: http://svn.apache.org/viewvc/maven/doxia/trunk/doxia-sandbox/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/LatexBookRenderer.java?rev=418877&view=auto == --- maven/doxia/trunk/doxia-sandbox/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/LatexBookRenderer.java (added) +++ maven/doxia/trunk/doxia-sandbox/doxia-book/src/main/java/org/apache/maven/doxia/book/services/renderer/LatexBookRenderer.java Mon Jul 3 16:34:53 2006 @@ -0,0 +1,198 @@ +package org.apache.maven.doxia.book.services.renderer; + +import org.apache.maven.doxia.book.BookDoxiaException; +import org.apache.maven.doxia.book.services.renderer.latex.LatexBookSink; +import org.apache.maven.doxia.book.context.BookContext; +import org.apache.maven.doxia.book.model.Book; +import org.apache.maven.doxia.book.model.Chapter; +import org.apache.maven.doxia.book.model.Section; +import org.apache.maven.doxia.module.latex.LatexSink; +import org.apache.maven.doxia.parser.manager.ParserNotFoundException; +import org.apache.maven.doxia.parser.ParseException; +import org.apache.maven.doxia.Doxia; +import org.codehaus.plexus.util.StringUtils; +import org.codehaus.plexus.util.IOUtil; + +import java.io.File; +import java.io.FileWriter; +import java.io.IOException; +import java.io.PrintWriter; +import java.io.FileReader; +import java.io.FileNotFoundException; +import java.util.Iterator; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; +import java.util.HashMap; + +/** + * @plexus.component role-hint="latex" + * + * @author mailto:[EMAIL PROTECTED]">Trygve Laugstøl + * @version $Id$ + */ +public class LatexBookRenderer +implements BookRenderer +{ +/** + * @plexus.requirement + */ +private Doxia doxia; + +// -- +// BookRenderer Implementatino +// -- + +public void renderBook( BookContext context ) +throws BookDoxiaException +{ +Book book = context.getBook(); + +if ( !context.getOutputDirectory().exists() ) +{ +if ( !context.getOutputDirectory().mkdirs() ) +{ +throw new BookDoxiaException( +"Could not make directory: " + context.getOutputDirectory().getAbsolutePath() + "." ); +} +} + +File bookFile = new File( context.getOutputDirectory(), book.getId() + ".tex" ); + +FileWriter fileWriter = null; + +try +{ +fileWriter = new FileWriter( bookFile ); + +PrintWriter writer = new PrintWriter( fileWriter ); + +writeBook( book, context, writer ); +} +catch ( IOException e ) +{ +throw new BookDoxiaException( "Error while opening file.", e ); +} +finally +{ +IOUtil.close( fileWriter ); +} +} + +// -- +// Private +// -- + +private static class SectionInfo +{ +private String id; + +private String title; +} + +private void writeBook( Book book, BookContext context, PrintWriter writer ) +throws IOException, BookDoxiaException +{ +// -- +// Process all the section documents and collect their names +// -- + +Map sectionInfos = new HashMap(); + +for ( Iterator it = book.getChapters().iterator(); it.hasNext(); ) +{ +Chapter chapter = (Chapter) it.next(); + +for ( Iterator j = chapter.getSections().iterator(); j.hasNext(); ) +{ +Section section = (Section) j.next(); + +