Package br.com.caelum.tubaina.parser.latex

Source Code of br.com.caelum.tubaina.parser.latex.JavaTag

package br.com.caelum.tubaina.parser.latex;

import java.util.List;

import br.com.caelum.tubaina.parser.CodeHighlightTag;
import br.com.caelum.tubaina.parser.Indentator;
import br.com.caelum.tubaina.parser.Tag;
import de.java2html.Java2Html;
import de.java2html.JavaSourceConversionSettings;
import de.java2html.converter.IJavaSourceConverter;
import de.java2html.converter.JavaSource2TeXConverter;
import de.java2html.options.JavaSourceConversionOptions;

public class JavaTag implements Tag {


  private final Indentator indentator;

  public JavaTag(Indentator indentator) {
    this.indentator = indentator;
   
  }
  public String parse(String string, String opts) {
    boolean numbered = isNumbered(opts);
    List<Integer> highlights = new CodeHighlightTag().getHighlights(opts);
   
    string = indentator.indent(string);
   
    JavaSourceConversionOptions options = JavaSourceConversionOptions.getDefault();
      options.setShowLineNumbers(numbered);
     
    JavaSourceConversionSettings settings = new JavaSourceConversionSettings(options) {
      @Override
      public IJavaSourceConverter createConverter() {
        return new JavaSource2TeXConverter();
      }
    };
    string = Java2Html.convertToHtml(string, settings);
    string = new CodeHighlightTag().parseLatex(string.trim(), highlights, 7);
    return "{\\small\n"+string+"}";
  }
  private boolean isNumbered(String opts) {
    return opts.contains("#");
  }

}
TOP

Related Classes of br.com.caelum.tubaina.parser.latex.JavaTag

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.