Erweiterung von neon zur Transformation von Asciidoc
ulrich
2024-02-25 e76d49eb05e0ab3280c9cac285c274b5b6f38fab
Code des Filter optimiert
1 files modified
20 ■■■■■ changed files
src/de/uhilger/neon/adoc/AdocFilter.java 20 ●●●●● patch | view | raw | blame | history
src/de/uhilger/neon/adoc/AdocFilter.java
@@ -18,10 +18,12 @@
package de.uhilger.neon.adoc;
import com.sun.net.httpserver.Filter;
import com.sun.net.httpserver.HttpContext;
import com.sun.net.httpserver.HttpExchange;
import de.uhilger.neon.FileServer;
import java.io.File;
import java.io.IOException;
import java.net.URI;
/**
 * AdocFilter prueft, ob fuer eine Asciidoctor-Quelldatei bereits eine HTML-Version vorliegt. Wenn
@@ -34,17 +36,13 @@
  @Override
  public void doFilter(HttpExchange exchange, Chain chain) throws IOException {
    String fileBase = exchange.getHttpContext().getAttributes()
            .get(FileServer.ATTR_FILE_BASE).toString();
    String fileName = exchange
            .getRequestURI()
            .getPath()
            .substring(exchange
                    .getHttpContext()
                    .getPath()
                    .length());
    if(fileName.endsWith(".adoc")) {
      String query = exchange.getRequestURI().getQuery();
    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 {