Commit c662a8c1 authored by Liang Ding's avatar Liang Ding

#19

parent 04df80b4
...@@ -32,7 +32,6 @@ import org.b3log.solo.util.Mocks; ...@@ -32,7 +32,6 @@ import org.b3log.solo.util.Mocks;
import java.io.File; import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.net.URI;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
/** /**
...@@ -56,6 +55,16 @@ public class StaticSiteProcessor { ...@@ -56,6 +55,16 @@ public class StaticSiteProcessor {
*/ */
private static final String STATIC_SITE = "static-site"; private static final String STATIC_SITE = "static-site";
/**
* Path of generate directory.
*/
private static final String staticSitePath = StaticSiteProcessor.class.getResource("/" + STATIC_SITE).getPath();
/**
* Source directory path.
*/
private static final String sourcePath = StaticSiteProcessor.class.getResource("/").getPath();
/** /**
* Generates static site. * Generates static site.
* *
...@@ -63,9 +72,9 @@ public class StaticSiteProcessor { ...@@ -63,9 +72,9 @@ public class StaticSiteProcessor {
*/ */
@RequestProcessing(value = "/static-site") @RequestProcessing(value = "/static-site")
public void genStaticSite(final RequestContext context) { public void genStaticSite(final RequestContext context) {
try { try {
FileUtils.forceMkdir(new File(staticSitePath + "/skins/"));
Latkes.setServerScheme("https"); Latkes.setServerScheme("https");
// TODO: 前端传入生成站点域名 // TODO: 前端传入生成站点域名
Latkes.setServerHost("88250.github.io"); Latkes.setServerHost("88250.github.io");
...@@ -86,6 +95,8 @@ public class StaticSiteProcessor { ...@@ -86,6 +95,8 @@ public class StaticSiteProcessor {
copyFile("robots.txt"); copyFile("robots.txt");
copyFile("CHANGE_LOGS.md"); copyFile("CHANGE_LOGS.md");
LOGGER.log(Level.INFO, "Static site generated [dir=" + staticSitePath + "]");
context.renderJSON(0); context.renderJSON(0);
} catch (final Exception e) { } catch (final Exception e) {
LOGGER.log(Level.ERROR, "Generates static site failed", e); LOGGER.log(Level.ERROR, "Generates static site failed", e);
...@@ -94,7 +105,6 @@ public class StaticSiteProcessor { ...@@ -94,7 +105,6 @@ public class StaticSiteProcessor {
} }
private static void requestFile(final String uri) throws Exception { private static void requestFile(final String uri) throws Exception {
final String staticSitePath = StaticSiteProcessor.class.getResource("/" + STATIC_SITE).toURI().getPath();
FileUtils.forceMkdirParent(new File(staticSitePath + uri)); FileUtils.forceMkdirParent(new File(staticSitePath + uri));
final OutputStream outputStream = new FileOutputStream(staticSitePath + uri); final OutputStream outputStream = new FileOutputStream(staticSitePath + uri);
String html = Mocks.mockRequest(uri); String html = Mocks.mockRequest(uri);
...@@ -103,35 +113,25 @@ public class StaticSiteProcessor { ...@@ -103,35 +113,25 @@ public class StaticSiteProcessor {
} }
private static void copySkin() throws Exception { private static void copySkin() throws Exception {
final URI skins = StaticSiteProcessor.class.getResource("/skins").toURI(); FileUtils.deleteDirectory(new File(staticSitePath + "/skins"));
FileUtils.forceMkdir(new File(staticSitePath + "/skins"));
FileUtils.forceMkdir(new File(StaticSiteProcessor.class.getResource("/" + STATIC_SITE).getPath() + "/skins/")); FileUtils.copyDirectory(new File(StaticSiteProcessor.class.getResource("/skins").toURI()), new File(staticSitePath + "/skins"));
final URI siteSkins = StaticSiteProcessor.class.getResource("/" + STATIC_SITE + "/skins").toURI();
FileUtils.deleteDirectory(new File(siteSkins));
FileUtils.copyDirectory(new File(skins), new File(siteSkins));
} }
private static void copyJS() throws Exception { private static void copyJS() throws Exception {
final URI js = StaticSiteProcessor.class.getResource("/js").toURI(); FileUtils.deleteDirectory(new File(staticSitePath + "/js"));
FileUtils.forceMkdir(new File(staticSitePath + "/js"));
FileUtils.forceMkdir(new File(StaticSiteProcessor.class.getResource("/" + STATIC_SITE).getPath() + "/js/")); FileUtils.copyDirectory(new File(StaticSiteProcessor.class.getResource("/js").toURI()), new File(staticSitePath + "/js"));
final URI siteJS = StaticSiteProcessor.class.getResource("/" + STATIC_SITE + "/js").toURI();
FileUtils.deleteDirectory(new File(siteJS));
FileUtils.copyDirectory(new File(js), new File(siteJS));
} }
private static void copyImages() throws Exception { private static void copyImages() throws Exception {
final URI images = StaticSiteProcessor.class.getResource("/images").toURI(); FileUtils.deleteDirectory(new File(staticSitePath + "/images"));
FileUtils.forceMkdir(new File(staticSitePath + "/images"));
FileUtils.forceMkdir(new File(StaticSiteProcessor.class.getResource("/" + STATIC_SITE).getPath() + "/images/")); FileUtils.copyDirectory(new File(StaticSiteProcessor.class.getResource("/images").toURI()), new File(staticSitePath + "/images"));
final URI siteImages = StaticSiteProcessor.class.getResource("/" + STATIC_SITE + "/images").toURI();
FileUtils.deleteDirectory(new File(siteImages));
FileUtils.copyDirectory(new File(images), new File(siteImages));
} }
private static void copyFile(final String file) throws Exception { private static void copyFile(final String file) throws Exception {
final String sourcePath = StaticSiteProcessor.class.getResource("/").toURI().getPath(); FileUtils.forceMkdirParent(new File(staticSitePath + "/" + file));
FileUtils.forceMkdirParent(new File(sourcePath + "/" + file));
final String staticSitePath = StaticSiteProcessor.class.getResource("/" + STATIC_SITE).toURI().getPath(); final String staticSitePath = StaticSiteProcessor.class.getResource("/" + STATIC_SITE).toURI().getPath();
FileUtils.copyFile(new File(sourcePath + "/" + file), new File(staticSitePath + "/" + file)); FileUtils.copyFile(new File(sourcePath + "/" + file), new File(staticSitePath + "/" + file));
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment