// .vuepress/config.js
const path = require("path");
const host_url = "https://spring.gitcode.net/";

const autometa_options = {
  site: {
    name: "Spring 中文文档社区"
  },
  canonical_base: host_url
};

module.exports = {
  title: "Spring 中文文档社区",
  base: "/",
  head: [
    [
      "link",
      {
        rel: "icon",
        type: "image/png",
        sizes: "16x16",
        href: `/images/icons/favicon.ico`
      }
    ],
    [
      "link",
      {
        rel: "icon",
        type: "image/png",
        sizes: "48x48",
        href: `/images/icons/icon-48x48.png`
      }
    ],
    [
      "link",
      {
        rel: "icon",
        type: "image/png",
        sizes: "72x72",
        href: `/images/icons/icon-72x72.png`
      }
    ],
    ["link", { rel: "manifest", href: "/manifest.webmanifest" }],
    ["meta", { name: "application-name", content: "Spring 中文文档社区" }],
    [
      "meta",
      { name: "apple-mobile-web-app-title", content: "Spring 中文社区" }
    ],
    [
      "meta",
      { name: "apple-mobile-web-app-status-bar-style", content: "black" }
    ],
    ["link", { rel: "apple-touch-icon", href: `/images/icons/icon_48x48.png` }],
    [
      "link",
      {
        rel: "mask-icon",
        href: "/images/icons/favicon.ico",
        color: "#5dac38"
      }
    ],
    ["meta", { name: "msapplication-TileColor", content: "#5dac38" }],
    ["meta", { name: "theme-color", content: "#5dac38" }],
    [
      "meta",
      { name: "viewport", content: "width=device-width, initial-scale=1" }
    ],
    ["meta", { "http-equiv": "X-UA-Compatible", content: "IE=edge" }],
    ["meta", { name: "baidu-site-verification", content: "code-tApgxyb9G8" }],
    ['script', {},`
    var _hmt = _hmt || [];
    (function () {
      var hm = document.createElement("script");
      hm.src = "https://hm.baidu.com/hm.js?8eefd6b163dcb3f5762af6b0825e2dd1";
      var s = document.getElementsByTagName("script")[0];
      s.parentNode.insertBefore(hm, s);
    })();
    `]
  ],
  locales: {
    '/en/': {
        lang: 'en-US',
        title: 'Spring Docs',
        description: ''
    },
    "/": {
      lang: "zh-CN",
      title: "中文文档",
      description: ""
    }
  },
  plugins: [
    ["autometa", autometa_options],
    ['sitemap', {
        hostname: host_url,
        // 排除无实际内容的页面
        exclude: ["/404.html"]
      }
    ],
    [
      '@vuepress/last-updated', 
      {
        transformer: (timestamp, lang) => {
          const moment = require('moment')
          moment.locale(lang)
          return moment(timestamp).toString()
        }
      }
    ]
  ],
  theme: path.resolve(__dirname, "./themes/theme-gitcode/index.js"),
  themeConfig: {
    repo: "https://gitcode.net/dev-cloud/spring-docs",
    repoLabel: "GitCode",
    docsRepo: "https://gitcode.net/dev-cloud/spring-docs/",
    docsDir: "docs",
    docsBranch: "master",
    editLinks: true,
    editLinkText: "帮助我们改善此页面！",
    lastUpdated: "Last Updated",
    logo: "/images/icons/spring-logo.svg",
    sidebarDepth: 3,
    activeHeaderLinks: true,
    locales: {
      '/en/': {
          // 多语言下拉菜单的标题
          selectText: 'Language',
          // 该语言在下拉菜单中的标签
          label: 'English',
          lastUpdated: 'Last Updated',
          lang: 'en-US',
          // 编辑链接文字
          editLinkText: 'Edit this page on GitCode',
          algolia: {},
          nav: [
            {
              text: "Spring",
              link: '/en/spring/why-spring.html'
            },
            {
              text: "Spring Boot",
              link: '/en/spring-boot/getting-help.html'
            },
            {
              text: "Spring Framework",
              link: '/en/spring-framework/overview.html'
            },
            {
              text: "Spring Data",
              link: '/en/spring-data/spring-data.html'
            },
            {
              text: "Spring Cloud",
              link: '/en/spring-cloud/documentation-overview.html'
            },
            {
              text: "more",
              ariaLabel: "Others",
              items: [
                { text: 'Spring Cloud Data Flow', link: '/en/spring-cloud-data-flow/spring-cloud-dataflow.html' },
                { text: 'Spring Security', link: '/en/spring-security/overview.html' },
                { text: 'Spring for GraphQL', link: '/en/spring-for-graphql/spring-graphql.html' },
                { text: 'Spring Session', link: '/en/spring-session/_index.html' },
                { text: 'Spring Integration', link: '/en/spring-integration/preface.html' },
                { text: 'Spring HATEOAS', link: '/en/spring-hateoas/spring-hateoas.html' },
                { text: 'Spring REST Docs', link: '/en/spring-rest-docs/spring-restdocs.html' },
                { text: 'Spring Batch', link: '/en/spring-batch/spring-batch-intro.html' },
                { text: 'Spring AMQP', link: '/en/spring-amqp/spring-amqp.html' },
                { text: 'Spring CredHub', link: '/en/spring-credhub/spring-credhub.html' },
                { text: 'Spring Flo', link: '/en/spring-flo/spring-flo.html' },
                { text: 'Spring for Apache Kafka', link: '/en/spring-for-apache-kafka/spring-kafka.html' },
                { text: 'Spring LDAP', link: '/en/spring-ldap/spring-ldap.html' },
                { text: 'Spring Shell', link: '/en/spring-shell/spring-shell.html' },
                { text: 'Spring Statemachine', link: '/en/spring-statemachine/spring-statemachine.html' },
                { text: 'Spring Vault', link: '/en/spring-vault/spring-vault.html' },
                { text: 'Spring Web Flow', link: '/en/spring-web-flow/preface.html' },
                { text: 'Spring Web Services', link: '/en/spring-web-services/spring-web-service.html' }
              ]
            }
              ],
          sidebar: {
              '/en/spring-boot/': [
                  {
                      title: 'Spring Boot',
                      sidebarDepth: 2,
                      collapsable: false,
                      children: [
                          "getting-help.md",
                          "documentation.md",
                          "getting-started.md",
                          "upgrading.md",
                          "using.md",
                          "features.md",
                          "web.md",
                          "data.md",
                          "io.md",
                          "messaging.md",
                          "container-images.md",
                          "actuator.md",
                          "deployment.md",
                          "cli.md",
                          "build-tool-plugins.md",
                          "howto.md"
                      ],
                      initialOpenGroupIndex: 0
                  }
              ],
              '/en/spring-framework/': [
                  {
                      title: 'Spring Framework',
                      sidebarDepth: 2,
                      collapsable: false,
                      children: [
                          "overview.md",
                          "core.md",
                          "testing.md",
                          "data-access.md",
                          "web-servlet.md",
                          "web-reactive.md",
                          "integration.md",
                          "languages.md"
                      ],
                      initialOpenGroupIndex: 0
                  }
              ],
              '/en/spring-data/': [
                  {
                      title: 'Spring Data',
                      sidebarDepth: 2,
                      collapsable: false,
                      children: [
                          "spring-data.md"
                      ],
                      initialOpenGroupIndex: 0
                  }
              ],
              '/en/spring-cloud/': [
                  {
                      title: 'Spring Cloud',
                      sidebarDepth: 2,
                      collapsable: false,
                      children: [
                        "documentation-overview.md",
                        "spring-cloud-build.md",
                        "spring-cloud-bus.md",
                        "spring-cloud-circuitbreaker.md",
                        "spring-cloud-cli.md",
                        "spring-cloud-cloudfoundry.md",
                        "spring-cloud-commons.md",
                        "spring-cloud-config.md",
                        "spring-cloud-consul.md",
                        "spring-cloud-contract.md",
                        "spring-cloud-function.md",
                        "spring-cloud-gateway.md",
                        "spring-cloud-kubernetes.md",
                        "spring-cloud-netflix.md",
                        "spring-cloud-openfeign.md",
                        "spring-cloud-sleuth.md",
                        "spring-cloud-stream.md",
                        "spring-cloud-task.md",
                        "spring-cloud-vault.md",
                        "spring-cloud-zookeeper.md"
                      ],
                      initialOpenGroupIndex: 0
                  }
              ],
              '/en/spring-cloud-data-flow/': [
                  {
                      title: 'Spring Cloud Data Flow',
                      sidebarDepth: 2,
                      collapsable: false,
                      children: [
                          "spring-cloud-dataflow.md",
                      ],
                      initialOpenGroupIndex: 0
                  }
              ],
              '/en/spring-security/': [
                  {
                      title: 'Spring Security',
                      sidebarDepth: 2,
                      collapsable: false,
                      children: [
                        "overview.md",
                        "prerequisites.md",
                        "community.md",
                        "whats-new.md",
                        "getting-spring-security.md",
                        "features.md",
                        "features-authentication.md",
                        "features-authentication-password-storage.md",
                        "features-exploits.md",
                        "features-exploits-csrf.md",
                        "features-exploits-headers.md",
                        "features-exploits-http.md",
                        "features-integrations.md",
                        "features-integrations-cryptography.md",
                        "features-integrations-data.md",
                        "features-integrations-concurrency.md",
                        "features-integrations-jackson.md",
                        "features-integrations-localization.md",
                        "modules.md",
                        "samples.md",
                        "servlet.md",
                        "servlet-getting-started.md",
                        "servlet-architecture.md",
                        "servlet-authentication.md",
                        "servlet-authentication-architecture.md",
                        "servlet-authentication-passwords.md",
                        "servlet-authentication-passwords-input.md",
                        "servlet-authentication-passwords-form.md",
                        "servlet-authentication-passwords-basic.md",
                        "servlet-authentication-passwords-digest.md",
                        "servlet-authentication-passwords-storage.md",
                        "servlet-authentication-passwords-storage-in-memory.md",
                        "servlet-authentication-passwords-storage-jdbc.md",
                        "servlet-authentication-passwords-storage-user-details.md",
                        "servlet-authentication-passwords-storage-user-details-service.md",
                        "servlet-authentication-passwords-storage-password-encoder.md",
                        "servlet-authentication-passwords-storage-dao-authentication-provider.md",
                        "servlet-authentication-passwords-storage-ldap.md",
                        "servlet-authentication-session-management.md",
                        "servlet-authentication-rememberme.md",
                        "servlet-authentication-openid.md",
                        "servlet-authentication-anonymous.md",
                        "servlet-authentication-preauth.md",
                        "servlet-authentication-jaas.md",
                        "servlet-authentication-cas.md",
                        "servlet-authentication-x509.md",
                        "servlet-authentication-runas.md",
                        "servlet-authentication-logout.md",
                        "servlet-authentication-events.md",
                        "servlet-authorization-.md",
                        "servlet-authorization-architecture.md",
                        "servlet-authorization-authorize-http-requests.md",
                        "servlet-authorization-authorize-requests.md",
                        "servlet-authorization-expression-based.md",
                        "servlet-authorization-secure-objects.md",
                        "servlet-authorization-method-security.md",
                        "servlet-authorization-acls.md",
                        "servlet-oauth2-.md",
                        "servlet-oauth2-login.md",
                        "servlet-oauth2-login-core.md",
                        "servlet-oauth2-login-advanced.md",
                        "servlet-oauth2-client.md",
                        "servlet-oauth2-client-core.md",
                        "servlet-oauth2-client-authorization-grants.md",
                        "servlet-oauth2-client-client-authentication.md",
                        "servlet-oauth2-client-authorized-clients.md",
                        "servlet-oauth2-resource-server.md",
                        "servlet-oauth2-resource-server-jwt.md",
                        "servlet-oauth2-resource-server-opaque-token.md",
                        "servlet-oauth2-resource-server-multitenancy.md",
                        "servlet-oauth2-resource-server-bearer-tokens.md",
                        "servlet-saml2.md",
                        "servlet-saml2-login.md",
                        "servlet-saml2-login-overview.md",
                        "servlet-saml2-login-authentication-requests.md",
                        "servlet-saml2-login-authentication.md",
                        "servlet-saml2-logout.md",
                        "servlet-saml2-metadata.md",
                        "servlet-exploits.md",
                        "servlet-exploits-csrf.md",
                        "servlet-exploits-headers.md",
                        "servlet-exploits-http.md",
                        "servlet-exploits-firewall.md",
                        "servlet-integrations.md",
                        "servlet-integrations-concurrency.md",
                        "servlet-integrations-jackson.md",
                        "servlet-integrations-localization.md",
                        "servlet-integrations-servlet-api.md",
                        "servlet-integrations-data.md",
                        "servlet-integrations-mvc.md",
                        "servlet-integrations-websocket.md",
                        "servlet-integrations-cors.md",
                        "servlet-integrations-jsp-taglibs.md",
                        "servlet-configuration-java.md",
                        "servlet-configuration-kotlin.md",
                        "servlet-configuration-xml-namespace.md",
                        "servlet-test.md",
                        "servlet-test-method.md",
                        "servlet-test-mockmvc.md",
                        "servlet-test-mockmvc-setup.md",
                        "servlet-test-mockmvc-request-post-processors.md",
                        "servlet-test-mockmvc-authentication.md",
                        "servlet-test-mockmvc-csrf.md",
                        "servlet-test-mockmvc-form-login.md",
                        "servlet-test-mockmvc-http-basic.md",
                        "servlet-test-mockmvc-oauth2.md",
                        "servlet-test-mockmvc-logout.md",
                        "servlet-test-mockmvc-request-builders.md",
                        "servlet-test-mockmvc-result-matchers.md",
                        "servlet-test-mockmvc-result-handlers.md",
                        "servlet-appendix.md",
                        "servlet-appendix-database-schema.md",
                        "servlet-appendix-namespace.md",
                        "servlet-appendix-namespace-authentication-manager.md",
                        "servlet-appendix-namespace-http.md",
                        "servlet-appendix-namespace-method-security.md",
                        "servlet-appendix-namespace-ldap.md",
                        "servlet-appendix-namespace-websocket.md",
                        "servlet-appendix-faq.md",
                        "reactive.md",
                        "reactive-getting-started.md",
                        "reactive-authentication-x509.md",
                        "reactive-authentication-logout.md",
                        "reactive-authorization-authorize-http-requests.md",
                        "reactive-authorization-method.md",
                        "reactive-oauth2.md",
                        "reactive-oauth2-login.md",
                        "reactive-oauth2-login-core.md",
                        "reactive-oauth2-login-advanced.md",
                        "reactive-oauth2-client.md",
                        "reactive-oauth2-client-core.md",
                        "reactive-oauth2-client-authorization-grants.md",
                        "reactive-oauth2-client-client-authentication.md",
                        "reactive-oauth2-client-authorized-clients.md",
                        "reactive-oauth2-resource-server.md",
                        "reactive-oauth2-resource-server-jwt.md",
                        "reactive-oauth2-resource-server-opaque-token.md",
                        "reactive-oauth2-resource-server-multitenancy.md",
                        "reactive-oauth2-resource-server-bearer-tokens.md",
                        "reactive-exploits.md",
                        "reactive-exploits-csrf.md",
                        "reactive-exploits-headers.md",
                        "reactive-exploits-http.md",
                        "reactive-integrations-cors.md",
                        "reactive-integrations-rsocket.md",
                        "reactive-test.md",
                        "reactive-test-method.md",
                        "reactive-test-web.md",
                        "reactive-test-web-setup.md",
                        "reactive-test-web-authentication.md",
                        "reactive-test-web-csrf.md",
                        "reactive-test-web-oauth2.md",
                        "reactive-configuration-webflux.md"
                      ],
                      initialOpenGroupIndex: 0
                  }
            ],
            "/en/spring-for-graphql/": [
              {
                title: "Spring For Graphql",
                sidebarDepth: 2,
                collapsable: false,
                children: ["spring-graphql.md"],
                initialOpenGroupIndex: 0
              }
            ],
            "/en/spring-session/": [
              {
                title: "Spring Session",
                sidebarDepth: 2,
                collapsable: false,
                children: [
                  "_index.md",
                  "whats-new.md",
                  "samples.md",
                  "bootSamples/HttpSession/mongo.md",
                  "bootSamples/HttpSession/jdbc.md",
                  "bootSamples/HttpSession/Redis/boot-redis.md",
                  "bootSamples/boot-findbyusername.md",
                  "bootSamples/boot-websocket.md",
                  "webFlux/boot-webflux-custom-cookie.md",
                  "modules.md",
                  "http-session.md",
                  "web-socket.md",
                  "web-session.md",
                  "spring-security.md",
                  "api.md",
                  "upgrading.md"
                ],
                initialOpenGroupIndex: 0
              }
            ],
            "/en/spring-integration/": [
              {
                title: "Spring Integration",
                sidebarDepth: 2,
                collapsable: false,
                children: [
                  "preface.md",
                  "whats-new.md",
                  "overview.md",
                  "core.md",
                  "message.md",
                  "message-routing.md",
                  "message-transformation.md",
                  "messaging-endpoints.md",
                  "dsl.md",
                  "kotlin-dsl.md",
                  "system-management.md",
                  "reactive-streams.md",
                  "endpoint-summary.md",
                  "amqp.md",
                  "event.md",
                  "feed.md",
                  "file.md",
                  "ftp.md",
                  "gemfire.md",
                  "http.md",
                  "jdbc.md",
                  "jpa.md",
                  "jms.md",
                  "jmx.md",
                  "kafka.md",
                  "mail.md",
                  "mongodb.md",
                  "mqtt.md",
                  "r2dbc.md",
                  "redis.md",
                  "resource.md",
                  "rmi.md",
                  "rsocket.md",
                  "sftp.md",
                  "stomp.md",
                  "stream.md",
                  "syslog.md",
                  "ip.md",
                  "webflux.md",
                  "web-sockets.md",
                  "ws.md",
                  "xml.md",
                  "xmpp.md",
                  "zeromq.md",
                  "zookeeper.md",
                  "error-handling.md",
                  "spel.md",
                  "message-publishing.md",
                  "transactions.md",
                  "security.md",
                  "configuration.md",
                  "testing.md",
                  "samples.md",
                  "resources.md",
                  "history.md"
                ],
                initialOpenGroupIndex: 0
              }
            ],
            "/en/spring-hateoas/": [
              {
                title: "Spring HATEOAS",
                sidebarDepth: 2,
                collapsable: false,
                children: ["spring-hateoas.md"],
                initialOpenGroupIndex: 0
              }
            ],
            "/en/spring-rest-docs/": [
              {
                title: "Spring REST Docs",
                sidebarDepth: 2,
                collapsable: false,
                children: ["spring-restdocs.md"],
                initialOpenGroupIndex: 0
              }
            ],
            "/en/spring-batch/": [
              {
                title: "Spring Batch 文档",
                sidebarDepth: 2,
                collapsable: false,
                children: [
                  "spring-batch-intro.md",
                  "whatsnew.md",
                  "domain.md",
                  "job.md",
                  "step.md",
                  "readersAndWriters.md",
                  "processor.md",
                  "scalability.md",
                  "repeat.md",
                  "retry.md",
                  "testing.md",
                  "common-patterns.md",
                  "jsr-352.md",
                  "spring-batch-integration.md",
                  "monitoring-and-metrics.md",
                  "appendix.md",
                  "schema-appendix.md",
                  "transaction-appendix.md",
                  "glossary.md"
                ],
                initialOpenGroupIndex: 0
              }
            ],
            "/en/spring-amqp/": [
              {
                title: "Spring AMQP",
                sidebarDepth: 2,
                collapsable: false,
                children: ["spring-amqp.md"],
                initialOpenGroupIndex: 0
              }
            ],
            "/en/spring-credhub/": [
              {
                title: "Spring CredHub",
                sidebarDepth: 2,
                collapsable: false,
                children: ["spring-credhub.md"],
                initialOpenGroupIndex: 0
              }
            ],
            "/en/spring-flo/": [
              {
                title: "Spring Flo",
                sidebarDepth: 2,
                collapsable: false,
                children: ["spring-flo.md"],
                initialOpenGroupIndex: 0
              }
            ],
            "/en/spring-for-apache-kafka/": [
              {
                title: "Spring for Apache Kafka",
                sidebarDepth: 2,
                collapsable: false,
                children: ["spring-kafka.md"],
                initialOpenGroupIndex: 0
              }
            ],
            "/en/spring-ldap/": [
              {
                title: "Spring for Apache Kafka",
                sidebarDepth: 2,
                collapsable: false,
                children: ["spring-ldap.md"],
                initialOpenGroupIndex: 0
              }
            ],
            "/en/spring-shell/": [
              {
                title: "Spring Shell",
                sidebarDepth: 2,
                collapsable: false,
                children: ["spring-shell.md"],
                initialOpenGroupIndex: 0
              }
            ],
            "/en/spring-statemachine/": [
              {
                title: "Spring Statemachine",
                sidebarDepth: 2,
                collapsable: false,
                children: ["spring-statemachine.md"],
                initialOpenGroupIndex: 0
              }
            ],
            "/en/spring-vault/": [
              {
                title: "Spring Vault",
                sidebarDepth: 2,
                collapsable: false,
                children: ["spring-vault.md"],
                initialOpenGroupIndex: 0
              }
            ],
            "/en/spring-web-flow/": [
              {
                title: "Spring Web Flow",
                sidebarDepth: 2,
                collapsable: false,
                children: [
                  "preface.md",
                  "introduction.md",
                  "whatsnew.md",
                  "defining-flows.md",
                  "el.md",
                  "views.md",
                  "actions.md",
                  "flow-managed-persistence.md",
                  "flow-security.md",
                  "flow-inheritance.md",
                  "system-setup.md",
                  "spring-mvc.md",
                  "spring-js.md",
                  "spring-faces.md",
                  "testing.md",
                  "field-mappings.md"
                ],
                initialOpenGroupIndex: 0
              }
            ],
            "/en/spring-web-services/": [
              {
                title: "Spring Web Services",
                sidebarDepth: 2,
                collapsable: false,
                children: ["spring-web-service.md"],
                initialOpenGroupIndex: 0
              }
            ],

              // fallback
              '/en/spring/':
              [
                  {
                      title: 'INTRO',
                      sidebarDepth: 2,
                      collapsable: false,
                      children: [
                          "why-spring.md",
                          "introducing-spring-boot.md",
                          "quickstart.md"
                      ],
                      initialOpenGroupIndex: 0
                  },
                  {
                      title: 'GUIDE',
                      sidebarDepth: 2,
                      collapsable: false,
                      children: [
                          "system-requirements.md",
                          "installing.md",
                          "initializr.md"
                      ],
                      initialOpenGroupIndex: 0
                  },
                  {
                      title: 'IDE',
                      sidebarDepth: 2,
                      collapsable: false,
                      children: [
                          "vscode_java.md",
                          "intellij_idea.md"
                      ],
                      initialOpenGroupIndex: 0
                  },
                  {
                      title: 'DEMO',
                      sidebarDepth: 2,
                      collapsable: false,
                      children: [
                          "getting-started_first-application.md",
                          "rest-service.md",
                          "consuming-rest.md"
                      ],
                      initialOpenGroupIndex: 0
                  }
              ]
          }
      },
      "/": {
        selectText: "选择语言",
        label: "简体中文",
        ariaLabel: "语言",
        lang: "zh-CN",
        editLinkText: "在 GitCode 上编辑此页",
        lastUpdated: "上次更新",
        algolia: {},
        nav: [
          {
            text: "Spring",
                        link: '/why-spring.html'
          },
          {
            text: "Spring Boot",
                        link: '/spring-boot/getting-help.html'
          },
          {
            text: "Spring Framework",
                        link: '/spring-framework/overview.html'
          },
          {
            text: "Spring Data",
                        link: '/spring-data/spring-data.html'
          },
          {
            text: "Spring Cloud",
                        link: '/spring-cloud/documentation-overview.html'
          },
          {
            text: "更多文档",
            ariaLabel: "Others",
            items: [
	            { text: 'Spring Cloud Data Flow', link: '/spring-cloud-data-flow/spring-cloud-dataflow.html' },
	            { text: 'Spring Security', link: '/spring-security/overview.html' },
	            { text: 'Spring for GraphQL', link: '/spring-for-graphql/spring-graphql.html' },
	            { text: 'Spring Session', link: '/spring-session/_index.html' },
	            { text: 'Spring Integration', link: '/spring-integration/preface.html' },
	            { text: 'Spring HATEOAS', link: '/spring-hateoas/spring-hateoas.html' },
	            { text: 'Spring REST Docs', link: '/spring-rest-docs/spring-restdocs.html' },
	            { text: 'Spring Batch', link: '/spring-batch/spring-batch-intro.html' },
	            { text: 'Spring AMQP', link: '/spring-amqp/spring-amqp.html' },
	            { text: 'Spring CredHub', link: '/spring-credhub/spring-credhub.html' },
	            { text: 'Spring Flo', link: '/spring-flo/spring-flo.html' },
	            { text: 'Spring for Apache Kafka', link: '/spring-for-apache-kafka/spring-kafka.html' },
	            { text: 'Spring LDAP', link: '/spring-ldap/spring-ldap.html' },
	            { text: 'Spring Shell', link: '/spring-shell/spring-shell.html' },
	            { text: 'Spring Statemachine', link: '/spring-statemachine/spring-statemachine.html' },
	            { text: 'Spring Vault', link: '/spring-vault/spring-vault.html' },
	            { text: 'Spring Web Flow', link: '/spring-web-flow/preface.html' },
	            { text: 'Spring Web Services', link: '/spring-web-services/spring-web-service.html' }
            ]
          }
        ],
        sidebar: {
          "/spring-boot/": [
            {
              title: "Spring Boot 文档",
              sidebarDepth: 2,
              collapsable: false,
              children: [
                "/spring-boot/getting-help.md",
                "/spring-boot/documentation.md",
                "/spring-boot/getting-started.md",
                "/spring-boot/upgrading.md",
                "/spring-boot/using.md",
                "/spring-boot/features.md",
                "/spring-boot/web.md",
                "/spring-boot/data.md",
                "/spring-boot/io.md",
                "/spring-boot/messaging.md",
                "/spring-boot/container-images.md",
                "/spring-boot/actuator.md",
                "/spring-boot/deployment.md",
                "/spring-boot/cli.md",
                "/spring-boot/build-tool-plugins.md",
                "/spring-boot/howto.md"
              ],
              initialOpenGroupIndex: 0
            }
          ],
          "/spring-framework/": [
            {
              title: "Spring Framework 文档",
              sidebarDepth: 2,
              collapsable: false,
              children: [
                "/spring-framework/overview.md",
                "/spring-framework/core.md",
                "/spring-framework/testing.md",
                "/spring-framework/data-access.md",
                "/spring-framework/web-servlet.md",
                "/spring-framework/web-reactive.md",
                "/spring-framework/integration.md",
                "/spring-framework/languages.md"
              ],
              initialOpenGroupIndex: 0
            }
          ],
          "/spring-data/": [
            {
              title: "Spring Data 文档",
              sidebarDepth: 2,
              collapsable: false,
              children: [
                "/spring-data/spring-data.md"
              ],
              initialOpenGroupIndex: 0
            }
          ],
          "/spring-cloud/": [
            {
              title: "Spring Cloud 文档",
              sidebarDepth: 2,
              collapsable: false,
              children: [
                "/spring-cloud/documentation-overview.md",
                "/spring-cloud/spring-cloud-build.md",
                "/spring-cloud/spring-cloud-bus.md",
                "/spring-cloud/spring-cloud-circuitbreaker.md",
                "/spring-cloud/spring-cloud-cli.md",
                "/spring-cloud/spring-cloud-cloudfoundry.md",
                "/spring-cloud/spring-cloud-commons.md",
                "/spring-cloud/spring-cloud-config.md",
                "/spring-cloud/spring-cloud-consul.md",
                "/spring-cloud/spring-cloud-contract.md",
                "/spring-cloud/spring-cloud-function.md",
                "/spring-cloud/spring-cloud-gateway.md",
                "/spring-cloud/spring-cloud-kubernetes.md",
                "/spring-cloud/spring-cloud-netflix.md",
                "/spring-cloud/spring-cloud-openfeign.md",
                "/spring-cloud/spring-cloud-sleuth.md",
                "/spring-cloud/spring-cloud-stream.md",
                "/spring-cloud/spring-cloud-task.md",
                "/spring-cloud/spring-cloud-vault.md",
                "/spring-cloud/spring-cloud-zookeeper.md"
              ],
              initialOpenGroupIndex: 0
            }
          ],
          "/spring-cloud-data-flow/": [
            {
              title: "Spring Cloud Data Flow 文档",
              sidebarDepth: 2,
              collapsable: false,
              children: ["/spring-cloud-data-flow/spring-cloud-dataflow.md"],
              initialOpenGroupIndex: 0
            }
          ],
          "/spring-security/": [
            {
              title: "Spring 安全",
              sidebarDepth: 2,
              collapsable: false,
              children: [
                "/spring-security/overview.md",
                "/spring-security/prerequisites.md",
                "/spring-security/community.md",
                "/spring-security/whats-new.md",
                "/spring-security/getting-spring-security.md",
                "/spring-security/features.md",
                "/spring-security/features-authentication.md",
                "/spring-security/features-authentication-password-storage.md",
                "/spring-security/features-exploits.md",
                "/spring-security/features-exploits-csrf.md",
                "/spring-security/features-exploits-headers.md",
                "/spring-security/features-exploits-http.md",
                "/spring-security/features-integrations.md",
                "/spring-security/features-integrations-cryptography.md",
                "/spring-security/features-integrations-data.md",
                "/spring-security/features-integrations-concurrency.md",
                "/spring-security/features-integrations-jackson.md",
                "/spring-security/features-integrations-localization.md",
                "/spring-security/modules.md",
                "/spring-security/samples.md",
                "/spring-security/servlet.md",
                "/spring-security/servlet-getting-started.md",
                "/spring-security/servlet-architecture.md",
                "/spring-security/servlet-authentication.md",
                "/spring-security/servlet-authentication-architecture.md",
                "/spring-security/servlet-authentication-passwords.md",
                "/spring-security/servlet-authentication-passwords-input.md",
                "/spring-security/servlet-authentication-passwords-form.md",
                "/spring-security/servlet-authentication-passwords-basic.md",
                "/spring-security/servlet-authentication-passwords-digest.md",
                "/spring-security/servlet-authentication-passwords-storage.md",
                "/spring-security/servlet-authentication-passwords-storage-in-memory.md",
                "/spring-security/servlet-authentication-passwords-storage-jdbc.md",
                "/spring-security/servlet-authentication-passwords-storage-user-details.md",
                "/spring-security/servlet-authentication-passwords-storage-user-details-service.md",
                "/spring-security/servlet-authentication-passwords-storage-password-encoder.md",
                "/spring-security/servlet-authentication-passwords-storage-dao-authentication-provider.md",
                "/spring-security/servlet-authentication-passwords-storage-ldap.md",
                "/spring-security/servlet-authentication-session-management.md",
                "/spring-security/servlet-authentication-rememberme.md",
                "/spring-security/servlet-authentication-openid.md",
                "/spring-security/servlet-authentication-anonymous.md",
                "/spring-security/servlet-authentication-preauth.md",
                "/spring-security/servlet-authentication-jaas.md",
                "/spring-security/servlet-authentication-cas.md",
                "/spring-security/servlet-authentication-x509.md",
                "/spring-security/servlet-authentication-runas.md",
                "/spring-security/servlet-authentication-logout.md",
                "/spring-security/servlet-authentication-events.md",
                "/spring-security/servlet-authorization-.md",
                "/spring-security/servlet-authorization-architecture.md",
                "/spring-security/servlet-authorization-authorize-http-requests.md",
                "/spring-security/servlet-authorization-authorize-requests.md",
                "/spring-security/servlet-authorization-expression-based.md",
                "/spring-security/servlet-authorization-secure-objects.md",
                "/spring-security/servlet-authorization-method-security.md",
                "/spring-security/servlet-authorization-acls.md",
                "/spring-security/servlet-oauth2-.md",
                "/spring-security/servlet-oauth2-login.md",
                "/spring-security/servlet-oauth2-login-core.md",
                "/spring-security/servlet-oauth2-login-advanced.md",
                "/spring-security/servlet-oauth2-client.md",
                "/spring-security/servlet-oauth2-client-core.md",
                "/spring-security/servlet-oauth2-client-authorization-grants.md",
                "/spring-security/servlet-oauth2-client-client-authentication.md",
                "/spring-security/servlet-oauth2-client-authorized-clients.md",
                "/spring-security/servlet-oauth2-resource-server.md",
                "/spring-security/servlet-oauth2-resource-server-jwt.md",
                "/spring-security/servlet-oauth2-resource-server-opaque-token.md",
                "/spring-security/servlet-oauth2-resource-server-multitenancy.md",
                "/spring-security/servlet-oauth2-resource-server-bearer-tokens.md",
                "/spring-security/servlet-saml2.md",
                "/spring-security/servlet-saml2-login.md",
                "/spring-security/servlet-saml2-login-overview.md",
                "/spring-security/servlet-saml2-login-authentication-requests.md",
                "/spring-security/servlet-saml2-login-authentication.md",
                "/spring-security/servlet-saml2-logout.md",
                "/spring-security/servlet-saml2-metadata.md",
                "/spring-security/servlet-exploits.md",
                "/spring-security/servlet-exploits-csrf.md",
                "/spring-security/servlet-exploits-headers.md",
                "/spring-security/servlet-exploits-http.md",
                "/spring-security/servlet-exploits-firewall.md",
                "/spring-security/servlet-integrations.md",
                "/spring-security/servlet-integrations-concurrency.md",
                "/spring-security/servlet-integrations-jackson.md",
                "/spring-security/servlet-integrations-localization.md",
                "/spring-security/servlet-integrations-servlet-api.md",
                "/spring-security/servlet-integrations-data.md",
                "/spring-security/servlet-integrations-mvc.md",
                "/spring-security/servlet-integrations-websocket.md",
                "/spring-security/servlet-integrations-cors.md",
                "/spring-security/servlet-integrations-jsp-taglibs.md",
                "/spring-security/servlet-configuration-java.md",
                "/spring-security/servlet-configuration-kotlin.md",
                "/spring-security/servlet-configuration-xml-namespace.md",
                "/spring-security/servlet-test.md",
                "/spring-security/servlet-test-method.md",
                "/spring-security/servlet-test-mockmvc.md",
                "/spring-security/servlet-test-mockmvc-setup.md",
                "/spring-security/servlet-test-mockmvc-request-post-processors.md",
                "/spring-security/servlet-test-mockmvc-authentication.md",
                "/spring-security/servlet-test-mockmvc-csrf.md",
                "/spring-security/servlet-test-mockmvc-form-login.md",
                "/spring-security/servlet-test-mockmvc-http-basic.md",
                "/spring-security/servlet-test-mockmvc-oauth2.md",
                "/spring-security/servlet-test-mockmvc-logout.md",
                "/spring-security/servlet-test-mockmvc-request-builders.md",
                "/spring-security/servlet-test-mockmvc-result-matchers.md",
                "/spring-security/servlet-test-mockmvc-result-handlers.md",
                "/spring-security/servlet-appendix.md",
                "/spring-security/servlet-appendix-database-schema.md",
                "/spring-security/servlet-appendix-namespace.md",
                "/spring-security/servlet-appendix-namespace-authentication-manager.md",
                "/spring-security/servlet-appendix-namespace-http.md",
                "/spring-security/servlet-appendix-namespace-method-security.md",
                "/spring-security/servlet-appendix-namespace-ldap.md",
                "/spring-security/servlet-appendix-namespace-websocket.md",
                "/spring-security/servlet-appendix-faq.md",
                "/spring-security/reactive.md",
                "/spring-security/reactive-getting-started.md",
                "/spring-security/reactive-authentication-x509.md",
                "/spring-security/reactive-authentication-logout.md",
                "/spring-security/reactive-authorization-authorize-http-requests.md",
                "/spring-security/reactive-authorization-method.md",
                "/spring-security/reactive-oauth2.md",
                "/spring-security/reactive-oauth2-login.md",
                "/spring-security/reactive-oauth2-login-core.md",
                "/spring-security/reactive-oauth2-login-advanced.md",
                "/spring-security/reactive-oauth2-client.md",
                "/spring-security/reactive-oauth2-client-core.md",
                "/spring-security/reactive-oauth2-client-authorization-grants.md",
                "/spring-security/reactive-oauth2-client-client-authentication.md",
                "/spring-security/reactive-oauth2-client-authorized-clients.md",
                "/spring-security/reactive-oauth2-resource-server.md",
                "/spring-security/reactive-oauth2-resource-server-jwt.md",
                "/spring-security/reactive-oauth2-resource-server-opaque-token.md",
                "/spring-security/reactive-oauth2-resource-server-multitenancy.md",
                "/spring-security/reactive-oauth2-resource-server-bearer-tokens.md",
                "/spring-security/reactive-exploits.md",
                "/spring-security/reactive-exploits-csrf.md",
                "/spring-security/reactive-exploits-headers.md",
                "/spring-security/reactive-exploits-http.md",
                "/spring-security/reactive-integrations-cors.md",
                "/spring-security/reactive-integrations-rsocket.md",
                "/spring-security/reactive-test.md",
                "/spring-security/reactive-test-method.md",
                "/spring-security/reactive-test-web.md",
                "/spring-security/reactive-test-web-setup.md",
                "/spring-security/reactive-test-web-authentication.md",
                "/spring-security/reactive-test-web-csrf.md",
                "/spring-security/reactive-test-web-oauth2.md",
                "/spring-security/reactive-configuration-webflux.md"
              ],
              initialOpenGroupIndex: 0
            }
          ],

          "/spring-for-graphql/": [
            {
              title: "Spring For Graphql 文档",
              sidebarDepth: 2,
              collapsable: false,
              children: ["/spring-for-graphql/spring-graphql.md"],
              initialOpenGroupIndex: 0
            }
          ],
          "/spring-session/": [
            {
              title: "Spring Session 文档",
              sidebarDepth: 2,
              collapsable: false,
              children: [
                "/spring-session/_index.md",
                "/spring-session/whats-new.md",
                "/spring-session/samples.md",
                "/spring-session/bootSamples/HttpSession/mongo.md",
                "/spring-session/bootSamples/HttpSession/jdbc.md",
                "/spring-session/bootSamples/HttpSession/Redis/boot-redis.md",
                "/spring-session/bootSamples/boot-findbyusername.md",
                "/spring-session/bootSamples/boot-websocket.md",
                "/spring-session/webFlux/boot-webflux-custom-cookie.md",
                "/spring-session/modules.md",
                "/spring-session/http-session.md",
                "/spring-session/web-socket.md",
                "/spring-session/web-session.md",
                "/spring-session/spring-security.md",
                "/spring-session/api.md",
                "/spring-session/upgrading.md"
              ],
              initialOpenGroupIndex: 0
            }
          ],
          "/spring-integration/": [
            {
              title: "Spring Integration 文档",
              sidebarDepth: 2,
              collapsable: false,
              children: [
                "/spring-integration/preface.md",
                "/spring-integration/whats-new.md",
                "/spring-integration/overview.md",
                "/spring-integration/core.md",
                "/spring-integration/message.md",
                "/spring-integration/message-routing.md",
                "/spring-integration/message-transformation.md",
                "/spring-integration/messaging-endpoints.md",
                "/spring-integration/dsl.md",
                "/spring-integration/kotlin-dsl.md",
                "/spring-integration/system-management.md",
                "/spring-integration/reactive-streams.md",
                "/spring-integration/endpoint-summary.md",
                "/spring-integration/amqp.md",
                "/spring-integration/event.md",
                "/spring-integration/feed.md",
                "/spring-integration/file.md",
                "/spring-integration/ftp.md",
                "/spring-integration/gemfire.md",
                "/spring-integration/http.md",
                "/spring-integration/jdbc.md",
                "/spring-integration/jpa.md",
                "/spring-integration/jms.md",
                "/spring-integration/jmx.md",
                "/spring-integration/kafka.md",
                "/spring-integration/mail.md",
                "/spring-integration/mongodb.md",
                "/spring-integration/mqtt.md",
                "/spring-integration/r2dbc.md",
                "/spring-integration/redis.md",
                "/spring-integration/resource.md",
                "/spring-integration/rmi.md",
                "/spring-integration/rsocket.md",
                "/spring-integration/sftp.md",
                "/spring-integration/stomp.md",
                "/spring-integration/stream.md",
                "/spring-integration/syslog.md",
                "/spring-integration/ip.md",
                "/spring-integration/webflux.md",
                "/spring-integration/web-sockets.md",
                "/spring-integration/ws.md",
                "/spring-integration/xml.md",
                "/spring-integration/xmpp.md",
                "/spring-integration/zeromq.md",
                "/spring-integration/zookeeper.md",
                "/spring-integration/error-handling.md",
                "/spring-integration/spel.md",
                "/spring-integration/message-publishing.md",
                "/spring-integration/transactions.md",
                "/spring-integration/security.md",
                "/spring-integration/configuration.md",
                "/spring-integration/testing.md",
                "/spring-integration/samples.md",
                "/spring-integration/resources.md",
                "/spring-integration/history.md"
              ],
              initialOpenGroupIndex: 0
            }
          ],
          "/spring-hateoas/": [
            {
              title: "Spring HATEOAS 文档",
              sidebarDepth: 2,
              collapsable: false,
              children: ["/spring-hateoas/spring-hateoas.md"],
              initialOpenGroupIndex: 0
            }
          ],
          "/spring-rest-docs/": [
            {
              title: "Spring HATEOAS 文档",
              sidebarDepth: 2,
              collapsable: false,
              children: ["/spring-rest-docs/spring-restdocs.md"],
              initialOpenGroupIndex: 0
            }
          ],
          "/spring-batch/": [
            {
              title: "Spring Batch 文档",
              sidebarDepth: 2,
              collapsable: false,
              children: [
                "/spring-batch/spring-batch-intro.md",
                "/spring-batch/whatsnew.md",
                "/spring-batch/domain.md",
                "/spring-batch/job.md",
                "/spring-batch/step.md",
                "/spring-batch/readersAndWriters.md",
                "/spring-batch/processor.md",
                "/spring-batch/scalability.md",
                "/spring-batch/repeat.md",
                "/spring-batch/retry.md",
                "/spring-batch/testing.md",
                "/spring-batch/common-patterns.md",
                "/spring-batch/jsr-352.md",
                "/spring-batch/spring-batch-integration.md",
                "/spring-batch/monitoring-and-metrics.md",
                "/spring-batch/appendix.md",
                "/spring-batch/schema-appendix.md",
                "/spring-batch/transaction-appendix.md",
                "/spring-batch/glossary.md"
              ],
              initialOpenGroupIndex: 0
            }
          ],
          "/spring-amqp/": [
            {
              title: "Spring AMQP 文档",
              sidebarDepth: 2,
              collapsable: false,
              children: ["/spring-amqp/spring-amqp.md"],
              initialOpenGroupIndex: 0
            }
          ],
          "/spring-credhub/": [
            {
              title: "Spring CredHub 文档",
              sidebarDepth: 2,
              collapsable: false,
              children: ["/spring-credhub/spring-credhub.md"],
              initialOpenGroupIndex: 0
            }
          ],
          "/spring-flo/": [
            {
              title: "Spring Flo 文档",
              sidebarDepth: 2,
              collapsable: false,
              children: ["/spring-flo/spring-flo.md"],
              initialOpenGroupIndex: 0
            }
          ],
          "/spring-for-apache-kafka/": [
            {
              title: "Spring for Apache Kafka 文档",
              sidebarDepth: 2,
              collapsable: false,
              children: ["/spring-for-apache-kafka/spring-kafka.md"],
              initialOpenGroupIndex: 0
            }
          ],
          "/spring-ldap/": [
            {
              title: "Spring for Apache Kafka 文档",
              sidebarDepth: 2,
              collapsable: false,
              children: ["/spring-ldap/spring-ldap.md"],
              initialOpenGroupIndex: 0
            }
          ],
          "/spring-shell/": [
            {
              title: "Spring Shell 文档",
              sidebarDepth: 2,
              collapsable: false,
              children: ["/spring-shell/spring-shell.md"],
              initialOpenGroupIndex: 0
            }
          ],
          "/spring-statemachine/": [
            {
              title: "Spring Statemachine 文档",
              sidebarDepth: 2,
              collapsable: false,
              children: ["/spring-statemachine/spring-statemachine.md"],
              initialOpenGroupIndex: 0
            }
          ],
          "/spring-vault/": [
            {
              title: "Spring Vault 文档",
              sidebarDepth: 2,
              collapsable: false,
              children: ["/spring-vault/spring-vault.md"],
              initialOpenGroupIndex: 0
            }
          ],
          "/spring-web-flow/": [
            {
              title: "Spring Web Flow 文档",
              sidebarDepth: 2,
              collapsable: false,
              children: [
                "/spring-web-flow/preface.md",
                "/spring-web-flow/introduction.md",
                "/spring-web-flow/whatsnew.md",
                "/spring-web-flow/defining-flows.md",
                "/spring-web-flow/el.md",
                "/spring-web-flow/views.md",
                "/spring-web-flow/actions.md",
                "/spring-web-flow/flow-managed-persistence.md",
                "/spring-web-flow/flow-security.md",
                "/spring-web-flow/flow-inheritance.md",
                "/spring-web-flow/system-setup.md",
                "/spring-web-flow/spring-mvc.md",
                "/spring-web-flow/spring-js.md",
                "/spring-web-flow/spring-faces.md",
                "/spring-web-flow/testing.md",
                "/spring-web-flow/field-mappings.md"
              ],
              initialOpenGroupIndex: 0
            }
          ],
          "/spring-web-services/": [
            {
              title: "Spring Web Services 文档",
              sidebarDepth: 2,
              collapsable: false,
              children: ["/spring-web-services/spring-web-service.md"],
              initialOpenGroupIndex: 0
            }
          ],
          // fallback
          "/": [
            {
              title: "Spring 文档", // 必要的
              // path: '/', // 可选的, 标题的跳转链接，应为绝对路径且必须存在
              collapsable: false, // 可选的, 默认值是 true,
              sidebarDepth: 1, // 可选的, 默认值是 1
              children: [""]
            },
            {
              title: "介绍",
              sidebarDepth: 2,
              collapsable: false,
              children: [
                "why-spring.md",
                "introducing-spring-boot.md",
                "quickstart.md"
              ],
              initialOpenGroupIndex: 0
            },
            {
              title: "教程",
              sidebarDepth: 2,
              collapsable: false,
              children: [
                "system-requirements.md",
                "installing.md",
                "initializr.md"
              ],
              initialOpenGroupIndex: 0
            },
            {
              title: "编辑器",
              sidebarDepth: 2,
              collapsable: false,
              children: [
                "vscode_java.md",
                "intellij_idea.md"
              ],
              initialOpenGroupIndex: 0
            },
            {
              title: "代码案例",
              sidebarDepth: 2,
              collapsable: false,
              children: [
                "getting-started_first-application.md",
                "rest-service.md",
                "consuming-rest.md"
              ],
              initialOpenGroupIndex: 0
            }
          ]
        }
      }
    }
  }
};
