//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/incubator-freemarker.git"
  githubMirrorFreemarker: "https://github.com/apache/incubator-freemarker"
  gitDocgen: "https://git-wip-us.apache.org/repos/asf/incubator-freemarker-docgen.git"
  githubMirrorDocgen: "https://github.com/apache/incubator-freemarker-docgen"
  gitSite: "https://git-wip-us.apache.org/repos/asf/incubator-freemarker-site.git"
  githubMirrorSite: "https://github.com/apache/incubator-freemarker-site"
  gitOnlineTester: "https://git-wip-us.apache.org/repos/asf/incubator-freemarker-online-tester.git"
  githubMirrorOnlineTester: "https://github.com/apache/incubator-freemarker-online-tester"
  githubProject: "olink:githubMirrorFreemarker"
  githubProjectOld: "https://github.com/freemarker/"
  privateMailingList: "mailto:private@freemarker.incubator.apache.org"
  devMailingList: "mailto:dev@freemarker.incubator.apache.org"
  devMailingListSubscribe: "mailto:dev-subscribe@freemarker.incubator.apache.org"
  devMailingListUnsubscribe: "mailto:dev-unsubscribe@freemarker.incubator.apache.org"
  devMailingListArchive: "https://lists.apache.org/list.html?dev@freemarker.apache.org"
  notificationsMailingListSubscribe: "mailto:notifications-subscribe@freemarker.incubator.apache.org"
  notificationsMailingListUnsubscribe: "mailto:notifications-unsubscribe@freemarker.incubator.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" }
]
