Doclava: add support for a second html dir and associated output. This is primarily for devsite online docs builds. Also move ca151a9bbea066b0efd0e423bcade8895a83db71 and related changes into production docs branch.
Change-Id: Idc95c4e396713eb592b8d1ffd60d93ee89472e97
diff --git a/src/com/google/doclava/DocFile.java b/src/com/google/doclava/DocFile.java
index d450224..da829a4 100644
--- a/src/com/google/doclava/DocFile.java
+++ b/src/com/google/doclava/DocFile.java
@@ -51,6 +51,27 @@
}
}
+ public static String[] DEVSITE_VALID_LANGS = {"en", "es","ja", "ko", "ru", "zh-cn"};
+
+ public static String getPathRoot(String filename) {
+ String[] stripStr = filename.split("\\/");
+ String outFrag = stripStr[0];
+ if (stripStr.length > 0) {
+ for (String t : DEVSITE_VALID_LANGS) {
+ if (stripStr[0].equals("intl")) {
+ if (stripStr[1].equals(t)) {
+ outFrag = stripStr[2];
+ break;
+ }
+ } else if (stripStr[0].equals(t)) {
+ outFrag = stripStr[1];
+ break;
+ }
+ }
+ }
+ return outFrag;
+ }
+
public static void writePage(String docfile, String relative, String outfile) {
Data hdf = Doclava.makeHDF();
@@ -121,33 +142,30 @@
ClearPage.write(hdf, "docpage.cs", outfile);
} else {
String filename = outfile;
- // Check whether this is a localized page and remove the intl/*/ path from filename
- if (filename.indexOf("intl/") == 0) {
- filename = filename.substring(filename.indexOf("/", 5) + 1); // After intl/ to get 2nd /
- }
- if (filename.indexOf("design/") == 0) {
+ // Strip out the intl and lang id substr and get back just the
+ // guide, design, distribute, etc.
+ filename = getPathRoot(filename);
+ if (filename.indexOf("design") == 0) {
hdf.setValue("design", "true");
- } else if (filename.indexOf("develop/") == 0) {
+ } else if (filename.indexOf("develop") == 0) {
hdf.setValue("develop", "true");
- } else if (filename.indexOf("guide/") == 0) {
+ } else if (filename.indexOf("guide") == 0) {
hdf.setValue("guide", "true");
- } else if (filename.indexOf("training/") == 0) {
+ } else if (filename.indexOf("training") == 0) {
hdf.setValue("training", "true");
- } else if (filename.indexOf("more/") == 0) {
+ } else if (filename.indexOf("more") == 0) {
hdf.setValue("more", "true");
- } else if (filename.indexOf("google/") == 0) {
+ } else if (filename.indexOf("google") == 0) {
hdf.setValue("google", "true");
- } else if (filename.indexOf("distribute/") == 0) {
+ } else if (filename.indexOf("distribute") == 0) {
hdf.setValue("distribute", "true");
- } else if (filename.indexOf("about/") == 0) {
+ } else if (filename.indexOf("about") == 0) {
hdf.setValue("about", "true");
- } else if ((filename.indexOf("tools/") == 0) || (filename.indexOf("sdk/") == 0)) {
+ } else if ((filename.indexOf("tools") == 0) || (filename.indexOf("sdk") == 0)) {
hdf.setValue("tools", "true");
+ fromTemplate = hdf.getValue("page.template", "");
}
-
- if ((filename.indexOf("tools/sdk/preview/index.html") == 0) ||
- (filename.indexOf("sdk/index.html") == 0) ||
- (filename.indexOf("tools/sdk/ndk/index.html") == 0)) {
+ if (fromTemplate.equals("sdk")) {
ClearPage.write(hdf, "sdkpage.cs", outfile);
} else {
ClearPage.write(hdf, "docpage.cs", outfile);