externalizing footer links
diff --git a/src/main/org/freemarker/docgen/Transform.java b/src/main/org/freemarker/docgen/Transform.java
index 0f359c3..7327e28 100644
--- a/src/main/org/freemarker/docgen/Transform.java
+++ b/src/main/org/freemarker/docgen/Transform.java
@@ -83,12 +83,17 @@
* <a href="#cjsonLanguage">later</a>. The supported settings are
* (all optional):
* <ul>
- * <li><p><tt>tabs</tt> (map): Defines the tabs on the top of the page.
+ * <li>
+ * <p><tt>tabs</tt> (map): Defines the tabs on the top of the page.
* It associates labels with URL-s to which the tab will lead to.
* The URL of one of the tabs should be <tt>""</tt>, which means that
* it's the tab that belongs to the documentation generated by this
* configuration. The order of the map entries specifies the order in
* which the tabs will appear.
+ * <li><p><tt>searchKey</tt> (string): A Google custom search key. If not
+ * present, the search box will not show.
+ * <li><p><tt>footerSiteMap</tt> (map): Defines the list of links to
+ * display in the footer as columns
*
* <li><p><tt>internalBookmarks</tt> (map): Specifies the first part
* of the book-mark link list that appears in the navigation bar.
@@ -349,6 +354,7 @@
static final String SETTING_LOGO_ALT = "alt";
static final String SETTING_LOGO_HREF = "href";
static final String SETTING_TABS = "tabs";
+ static final String SETTING_FOOTER_SITEMAP = "footerSiteMap";
static final String SETTING_OLINKS = "olinks";
static final String SETTING_ECLIPSE = "eclipse";
static final String SETTING_SHOW_EDITORAL_NOTES = "showEditoralNotes";
@@ -399,6 +405,7 @@
= SETTING_EXTERNAL_BOOKMARKS;
private static final String VAR_LOGO = SETTING_LOGO;
private static final String VAR_TABS = SETTING_TABS;
+ private static final String VAR_FOOTER_SITEMAP = SETTING_FOOTER_SITEMAP;
private static final String VAR_OLINKS
= SETTING_OLINKS;
private static final String VAR_TOC_DISPLAY_DEPTH
@@ -554,6 +561,8 @@
private String searchKey;
+ private Object footerSiteMap = new Object();
+
private boolean disableJavaScript;
private boolean validate = true;
@@ -730,7 +739,10 @@
cfgFile, settingName, ent.getValue());
tabs.put(name, target);
}
- } else if (settingName.equals(SETTING_VALIDATION)) {
+ } else if (settingName.equals(SETTING_FOOTER_SITEMAP)) {
+ // @todo How can I check this?
+ footerSiteMap = settingValue;
+ }else if (settingName.equals(SETTING_VALIDATION)) {
Map<String, Object> m = itIsAMapSetting(
cfgFile, SETTING_VALIDATION, settingValue);
for (Entry<String, Object> ent : m.entrySet()) {
@@ -1017,6 +1029,8 @@
fmConfig.setSharedVariable(
VAR_TABS, tabs);
fmConfig.setSharedVariable(
+ VAR_FOOTER_SITEMAP, footerSiteMap);
+ fmConfig.setSharedVariable(
VAR_EXTERNAL_BOOKMARDS, externalBookmarks);
fmConfig.setSharedVariable(
VAR_INTERNAL_BOOKMARDS, internalBookmarks);
diff --git a/src/main/org/freemarker/docgen/templates/footer.ftl b/src/main/org/freemarker/docgen/templates/footer.ftl
index 844b538..6f32867 100644
--- a/src/main/org/freemarker/docgen/templates/footer.ftl
+++ b/src/main/org/freemarker/docgen/templates/footer.ftl
@@ -14,7 +14,9 @@
<div class="site-width">
<div class="footer-top">
<div class="col-left sitemap">
- <@siteMap />
+ <#if footerSiteMap??>
+ <@siteMap links=footerSiteMap />
+ </#if>
</div>
<div class="col-right">
<@ui.social />
@@ -54,60 +56,7 @@
</#macro>
-<#macro siteMap>
- <#-- @todo: make this dynamic instead of hardcoded -->
- <#local links = {
- "Overview": [{
- "text": "What is FreeMarker?",
- "href": "http://freemarker.org/features.html"
- },{
- "text": "Download",
- "href": "http://freemarker.org/freemarkerdownload.html"
- },{
- "text": "Version history",
- "href": "app_versions.html"
- },{
- "text": "About us",
- "href": "http://freemarker.org/whoWeAre.html"
- },{
- "text": "License",
- "href": "app_license.html"
- }],
- "Community": [{
- "text": "FreeMarker on Github",
- "href": "https://github.com/freemarker"
- },{
- "text": "Follow us on Twitter",
- "href": "https://twitter.com/freemarker"
- },{
- <#-- @todo: enable issues on Github, and update link -->
- "text": "Report a bug",
- "href": "https://sourceforge.net/p/freemarker/bugs/new/"
- },{
- "text": "Ask a question",
- "href": "http://stackoverflow.com/questions/tagged/freemarker"
- },{
- "text": "Mailing lists",
- "href": "http://freemarker.org/mailing-lists.html"
- }],
- "Shortcuts": [{
- "text": "Expressions cheatsheet",
- "href": "dgui_template_exp.html#exp_cheatsheet"
- }, {
- "text": ".special_vars",
- "href": "ref_specvar.html"
- }, {
- "text": "#directives",
- "href": "ref_directive_alphaidx.html"
- }, {
- "text": "?built_ins",
- "href": "ref_builtins_alphaidx.html"
- }, {
- "text": "FAQ",
- "href": "app_faq.html"
- }]
- } />
-
+<#macro siteMap links>
<#list links?keys as column>
<div class="column">
<h3 class="column-header">${column}</h3>