content: package emu.grasscutter.server.http.documentation;
  
  import static emu.grasscutter.utils.Language.translate;
  
  import emu.grasscutter.Grasscutter;
  import emu.grasscutter.utils.FileUtils;
  import io.javalin.http.ContentType;
  import io.javalin.http.Context;
  
  import java.io.IOException;
  import java.nio.file.Files;
  
  final class RootRequestHandler implements DocumentationHandler {
  
      private final String template;
  
      public RootRequestHandler() {
          var templatePath = FileUtils.getDataPath("documentation/index.html");
          String t = null;
          try {
              t = Files.readString(templatePath);
          } catch (IOException ignored) {
              Grasscutter.getLogger().warn("File does not exist: " + templatePath);
          }
          this.template = t;
      }
  
      @Override
      public void handle(Context ctx) {
          if (template == null) {
              ctx.status(500);
              return;
          }
  
          String content = template.replace("{{TITLE}}", translate("documentation.index.title"))
                  .replace("{{ITEM_HANDBOOK}}", translate("documentation.index.handbook"))
                  .replace("{{ITEM_GACHA_MAPPING}}", translate("documentation.index.gacha_mapping"));
          ctx.contentType(ContentType.TEXT_HTML);
          ctx.result(content);
      }
  }
  