externalizing deploy url for canonical url. this closes freemarker/docgen#10
diff --git a/src/main/org/freemarker/docgen/Transform.java b/src/main/org/freemarker/docgen/Transform.java
index 0f434cf..54e2e56 100644
--- a/src/main/org/freemarker/docgen/Transform.java
+++ b/src/main/org/freemarker/docgen/Transform.java
@@ -114,7 +114,8 @@
* If it was already specified via {@link #setOffline(Boolean)}, then
* that has priority. If it wasn't specified via {@link #setOffline(Boolean)},
* then it's mandatory to set.
- *
+ * <li><p><tt>deployUrl</tt> (string): Url the page is deployed to (used
+ * for canonical urls)
* <li><p><tt>olinks</tt> (map):
* Maps <tt>olink</tt> <tt>targetdoc</tt> attribute values to
* actual URL-s.
@@ -346,6 +347,7 @@
static final String SETTING_VALIDATION = "validation";
static final String SETTING_OFFLINE = "offline";
+ static final String SETTING_DEPLOY_URL = "deployUrl";
static final String SETTING_ONLINE_TRACKER_HTML = "onlineTrackerHTML";
static final String SETTING_INTERNAL_BOOKMARKS = "internalBookmarks";
static final String SETTING_EXTERNAL_BOOKMARKS = "externalBookmarks";
@@ -389,6 +391,8 @@
private static final String VAR_OFFLINE
= SETTING_OFFLINE;
+ private static final String VAR_DEPLOY_URL
+ = SETTING_DEPLOY_URL;
private static final String VAR_ONLINE_TRACKER_HTML
= SETTING_ONLINE_TRACKER_HTML;
private static final String VAR_SHOW_EDITORAL_NOTES
@@ -542,6 +546,8 @@
private Boolean offline;
+ private String deployUrl;
+
private String onlineTrackerHTML;
/** Element types for which a new output file is created */
@@ -793,6 +799,8 @@
if (offline == null) { // Ignore if the caller has already set this
offline = itIsABooleanSetting(cfgFile, settingName, settingValue);
}
+ } else if (settingName.equals(SETTING_DEPLOY_URL)) {
+ deployUrl = itIsAStringSetting(cfgFile, settingName, settingValue);
} else if (settingName.equals(SETTING_ONLINE_TRACKER_HTML)) {
String onlineTrackerHtmlPath = itIsAStringSetting(cfgFile, settingName, settingValue);
File f = new File(getSourceDirectory(), onlineTrackerHtmlPath);
@@ -1035,6 +1043,8 @@
fmConfig.setSharedVariable(
VAR_OFFLINE, offline);
fmConfig.setSharedVariable(
+ VAR_DEPLOY_URL, deployUrl);
+ fmConfig.setSharedVariable(
VAR_ONLINE_TRACKER_HTML, onlineTrackerHTML);
fmConfig.setSharedVariable(
VAR_SHOW_EDITORAL_NOTES, showEditoralNotes);
diff --git a/src/main/org/freemarker/docgen/templates/page.ftl b/src/main/org/freemarker/docgen/templates/page.ftl
index 6e0656c..291728c 100644
--- a/src/main/org/freemarker/docgen/templates/page.ftl
+++ b/src/main/org/freemarker/docgen/templates/page.ftl
@@ -35,9 +35,11 @@
<#if nodeId == "autoid_1">
<#assign nodeId = "index">
</#if>
- <#assign canonicalUrl = "http://freemarker.org/docs/${nodeId}.html"><#-- @todo: remove hard-coded domain -->
- <meta property="og:url" content="${canonicalUrl}">
- <link rel="canoical" href="${canonicalUrl}">
+ <#if deployUrl??>
+ <#assign canonicalUrl = "${deployUrl + nodeId}.html">
+ <meta property="og:url" content="${canonicalUrl}">
+ <link rel="canoical" href="${canonicalUrl}">
+ </#if>
<!--[if gt IE 9]><!-->
<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Roboto:500,700,400|Droid+Sans+Mono">