Erweiterung von neon zur Transformation von Asciidoc
ulrich
4 days ago cf173715c28c6ac820df44009dd5bc3222af46fb
src/de/uhilger/neon/adoc/AdocFilter.java
@@ -21,6 +21,7 @@
import com.sun.net.httpserver.HttpContext;
import com.sun.net.httpserver.HttpExchange;
import de.uhilger.neon.FileServer;
import de.uhilger.neon.HttpHelper;
import java.io.File;
import java.io.IOException;
import java.net.URI;
@@ -37,19 +38,24 @@
  @Override
  public void doFilter(HttpExchange exchange, Chain chain) throws IOException {
    URI uri = exchange.getRequestURI();
    String path = uri.getPath();
    if(path.endsWith(".adoc")) {
      HttpContext ctx = exchange.getHttpContext();
      String fileBase = ctx.getAttributes().get(FileServer.ATTR_FILE_BASE).toString();
      String fileName = path.substring(ctx.getPath().length());
      String query = uri.getQuery();
      if (query instanceof String && query.contains("pdf=true")) {
        processAdocFile(new File(fileBase, fileName), true);
      } else {
        processAdocFile(new File(fileBase, fileName), false);
    try {
      String fileName = new HttpHelper().getFileName(exchange);
      if(fileName.endsWith(".adoc")) {
        HttpContext ctx = exchange.getHttpContext();
        String fileBase = ctx.getAttributes().get(FileServer.ATTR_FILE_BASE).toString();
        String query = uri.getQuery();
        if (query instanceof String && query.contains("pdf=true")) {
          processAdocFile(new File(fileBase, fileName), true);
        } else {
          processAdocFile(new File(fileBase, fileName), false);
        }
      }
    } catch (IllegalArgumentException ex) {
      // ungueltiger Dateiname, keine Transformation noetig, also tue nichts
    } finally {
      chain.doFilter(exchange);
    }
    chain.doFilter(exchange);
  }
  /**