//charset: UTF-8

// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements.  See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership.  The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License.  You may obtain a copy of the License at
// 
//   http://www.apache.org/licenses/LICENSE-2.0
// 
// Unless required by applicable law or agreed to in writing,
// software distributed under the License is distributed on an
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
// KIND, either express or implied.  See the License for the
// specific language governing permissions and limitations
// under the License.

deployUrl: "https://freemarker.apache.org/"
onlineTrackerHTML: "docgen-misc/googleAnalytics.html"
offline: false
simpleNavigationMode
timeZone: "GMT"
validation: {
  programlistingsRequireLanguage
  maximumProgramlistingWidth: 100
}
showXXELogo

copyrightHolder: "The Apache Software Foundation"
copyrightHolderSite: "http://apache.org/"
copyrightSuffix: "Apache FreeMarker, FreeMarker, Apache Incubator, Apache, the Apache FreeMarker logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners."
copyrightStartYear: 1999

seoMeta: {
  "file:index.html": {
    "fullTitle": "FreeMarker Java Template Engine"
    // Keep this under 160 characters or so (so that Google doesn't truncate it):
    "description": "\
        Java template engine; generates HTML web pages, e-mails, configuration files, source code, etc. \
        from template files and the data your application provides."
  }
}

logo: {
  href: "https://freemarker.apache.org/"
  src: logo.png
  alt: "FreeMarker"
}

olinks: {
  // Manual links:
  manual: "docs/index.html"
  api: "docs/api/index.html"
  chienseManual: "https://sourceforge.net/projects/freemarker/files/chinese-manual/"
  templateAuthorsGuide: "docs/dgui_quickstart_basics.html"
  license: "docs/app_license.html"
  versionHistory: "docs/app_versions.html"
  freemarkerServlet: "docs/pgui_misc_servlet.html"
  expressionCheatsheet: "docs/dgui_template_exp.html#exp_cheatsheet"
  specialVariables: "docs/ref_specvar.html"
  directives: "docs/ref_directive_alphaidx.html"
  builtIns: "docs/ref_builtins_alphaidx.html"
  faq: "docs/app_faq.html"
  
  // External URL-s:
  onlineTemplateTester: "http://try.freemarker.org/"
  twitter: "https://twitter.com/freemarker"
  gitFreemarker: "https://git-wip-us.apache.org/repos/asf/freemarker.git"
  githubMirrorFreemarker: "https://github.com/apache/freemarker"
  gitDocgen: "https://git-wip-us.apache.org/repos/asf/freemarker-docgen.git"
  githubMirrorDocgen: "https://github.com/apache/freemarker-docgen"
  gitSite: "https://git-wip-us.apache.org/repos/asf/freemarker-site.git"
  githubMirrorSite: "https://github.com/apache/freemarker-site"
  gitOnlineTester: "https://git-wip-us.apache.org/repos/asf/freemarker-online-tester.git"
  githubMirrorOnlineTester: "https://github.com/apache/freemarker-online-tester"
  githubProject: "olink:githubMirrorFreemarker"
  githubProjectOld: "https://github.com/freemarker/"
  privateMailingList: "mailto:private@freemarker.apache.org"
  devMailingList: "mailto:dev@freemarker.apache.org"
  devMailingListSubscribe: "mailto:dev-subscribe@freemarker.apache.org"
  devMailingListUnsubscribe: "mailto:dev-unsubscribe@freemarker.apache.org"
  devMailingListArchive: "https://lists.apache.org/list.html?dev@freemarker.apache.org"
  notificationsMailingListSubscribe: "mailto:notifications-subscribe@freemarker.apache.org"
  notificationsMailingListUnsubscribe: "mailto:notifications-unsubscribe@freemarker.apache.org"
  oldMailingListSubscription: "https://sourceforge.net/p/freemarker/mailman/"
  oldUserMailingListArchive: "http://news.gmane.org/gmane.comp.web.freemarker.user"
  oldDevelMailingListArchive: "http://news.gmane.org/gmane.comp.web.freemarker.devel"
  newBugReport: "https://issues.apache.org/jira/browse/FREEMARKER/"
  oldBugTracker: "https://sourceforge.net/p/freemarker/bugs/"
  newStackOverflowQuestion: "https://stackoverflow.com/questions/ask?tags=freemarker"
  asfSponsorship: "http://www.apache.org/foundation/sponsorship.html"
  asfThanks: "http://www.apache.org/foundation/thanks.html"
  asfHome: "http://www.apache.org/"
  asfIncubator: "http://incubator.apache.org/"
  asfLicense: "http://www.apache.org/licenses/"
  
  emacsPluginDownload: "https://sourceforge.net/projects/freemarker/files/editor-plugins/ftl.el/download"
  kwritePluginDownload: "https://sourceforge.net/projects/freemarker/files/editor-plugins/kwriteftl.tar.gz/download"
  textPadPluginDownload: "https://sourceforge.net/projects/freemarker/files/editor-plugins/textpadftl.zip/download"
  vimPluginDownload: "https://sourceforge.net/projects/freemarker/files/editor-plugins/ftl.vim/download"
}

tabs: {
  "Home": ""  // Empty => We are here
  "Manual": "olink:manual"
  "Java API": "olink:api"
}

// Available icons:
// .icon-heart
// .icon-bug
// .icon-download
// .icon-star
secondaryTabs: {
  "Contribute": { class: "icon-heart", href: "id:contribute" }
  "Report a Bug": { class: "icon-bug", href: "olink:newBugReport" }
  "Download": { class: "icon-download", href: "id:freemarkerdownload" }
}

footerSiteMap: {
  "Overview": {
    "What is FreeMarker?": "id:what-is-freemarker"
    "Download": "id:freemarkerdownload"
    "Version history": "olink:versionHistory"
    "About us": "id:history"
    "License": "olink:license"
  }
  "Handy stuff": {
    "Try template online": "olink:onlineTemplateTester"
    "Expressions cheatsheet": "olink:expressionCheatsheet"
    "#directives": "olink:directives"
    "?built_ins": "olink:builtIns"
    ".special_vars": "olink:specialVariables"
  }
  "Community": {
    "FreeMarker on Github": "olink:githubProject"
    "Follow us on Twitter": "olink:twitter"
    "Report a bug": "olink:newBugReport"
    "Ask a question": "olink:newStackOverflowQuestion"
    "Mailing lists": "id:mailing-lists"
  }
}

socialLinks: {
  "GitHub": { class: "github", href: "olink:githubProject" }
  "Twitter": { class: "twitter", href: "olink:twitter" }
  "Stack Overflow": { class: "stack-overflow", href: "olink:newStackOverflowQuestion" }
}

// sideTOCLogos: [
//  { src: "images/apache-incubator.png", alt: "Apache Incubator", href: "olink:asfIncubator" }
// ]
