| | |
| | | |
| | | import java.io.File; |
| | | import java.util.Map; |
| | | import java.util.logging.Level; |
| | | import java.util.logging.Logger; |
| | | |
| | | import static org.asciidoctor.Asciidoctor.Factory.create; |
| | |
| | | private static final Logger logger = Logger.getLogger(AdocActor.class.getName()); |
| | | |
| | | private static final String DOT = "."; |
| | | private static final String HTML = "html"; |
| | | private static final String PDF = "pdf"; |
| | | public static final String HTML = "html"; |
| | | public static final String PDF = "pdf"; |
| | | |
| | | public File getTargetFile(File adocfile, String ext) { |
| | | String nameext = adocfile.getName(); |
| | | String fname = nameext.substring(0, nameext.lastIndexOf(DOT)); |
| | | File outfile = new File(adocfile.getParentFile(), fname + DOT + ext); |
| | | logger.log(Level.FINE, "out: {0}", outfile.getAbsolutePath()); |
| | | return outfile; |
| | | } |
| | | |
| | | public void processAdocFile(File adocfile, String pdf) { |
| | | |
| | | String absname = adocfile.getAbsolutePath(); |
| | | logger.fine("in: " + absname); |
| | | logger.log(Level.FINE, "in: {0}", absname); |
| | | |
| | | // HTML-Datei ermitteln |
| | | String nameext = adocfile.getName(); |
| | | String fname = nameext.substring(0, nameext.lastIndexOf(DOT)); |
| | | File htmlfile = new File(adocfile.getParentFile(), fname + DOT + HTML); |
| | | File outfile = htmlfile; // Standardmaessig wird HTML zurueckgegeben |
| | | logger.fine("out: " + outfile.getAbsolutePath()); |
| | | //String nameext = adocfile.getName(); |
| | | //String fname = nameext.substring(0, nameext.lastIndexOf(DOT)); |
| | | //File htmlfile = new File(adocfile.getParentFile(), fname + DOT + HTML); |
| | | //File outfile = htmlfile; // Standardmaessig wird HTML zurueckgegeben |
| | | //logger.fine("out: " + outfile.getAbsolutePath()); |
| | | //response.setCharacterEncoding("UTF-8"); |
| | | File outfile = getTargetFile(adocfile, HTML); |
| | | File htmlfile = outfile; |
| | | |
| | | /* |
| | | nach HTML transformieren, wenn die Quelle sich geandert hat oder |
| | | die HTML-Datei noch nicht existiert |
| | | */ |
| | | if(!htmlfile.exists() || adocfile.lastModified() > htmlfile.lastModified()) { |
| | | logger.fine("calling transform for " + absname); |
| | | transform(absname); |
| | | } |
| | | |
| | |
| | | */ |
| | | |
| | | if(null != pdf && pdf.equalsIgnoreCase(Boolean.TRUE.toString())) { |
| | | File pdffile = new File(adocfile.getParentFile(), fname + DOT + PDF); |
| | | //File pdffile = new File(adocfile.getParentFile(), fname + DOT + PDF); |
| | | File pdffile = getTargetFile(adocfile, PDF); |
| | | outfile = pdffile; // PDF soll zurueckgegeben werden |
| | | if(!pdffile.exists() || adocfile.lastModified() > pdffile.lastModified()) { |
| | | //response.setContentType("application/pdf"); |
| | |
| | | * nach PDF transformiert werden soll |
| | | */ |
| | | private void transform(String fileName, String backend) { |
| | | logger.fine("fileName: " + fileName + ", backend: " + backend); |
| | | Map<String, Object> attributes; |
| | | File outFile = new File(fileName); |
| | | String thisDirName = outFile.getParent(); |
| | |
| | | .attributes(attributes).asMap(); |
| | | } |
| | | |
| | | File adcf = new File(fileName); |
| | | logger.fine("before asciidoctor create, adcf: " + adcf.getAbsolutePath()); |
| | | Asciidoctor asciidoctor = create(); |
| | | logger.fine("asciidoctor created."); |
| | | asciidoctor.requireLibrary("asciidoctor-diagram"); |
| | | asciidoctor.convertFile(new File(fileName), options); |
| | | logger.fine("asciidoctor requireLibrary diagram passed."); |
| | | logger.fine("calling asciidoctor.convert for file " + adcf.getAbsolutePath()); |
| | | asciidoctor.convertFile(adcf, options); |
| | | } |
| | | |
| | | } |