## Topnav single links
## if you want to list an external url, use external_url instead of url. the theme will apply a different link base.
topnav:
- title: Topnav
  items:
    - title: About
      url: /about.html
    - title: News
      url: /news.html
    - title: Support
      url: /support.html
#Topnav dropdowns
topnav_dropdowns:
- title: Topnav dropdowns
  folders:
    - title: Community
      folderitems:
        - title: Code of Conduct
          url: /codeofconduct.html
        - title: Members
          url: /members.html
        - title: Contributing
          external_url: https://gerrit-documentation.storage.googleapis.com/Documentation/3.2.5.1/dev-community.html#how-to-contribute
        - title: Presentations
          url: /presentations.html
        - title: Kudos
          url: /kudos.html
        - title: User Stories
          url: /userStories.html
    - title: Code
      folderitems:
        - title: Source
          external_url: https://gerrit.googlesource.com/gerrit/
        - title: Releases
          url: /releases-readme.html
        - title: Plugins
          url: /plugins.html
        - title: Roadmap
          url: /roadmap.html
        - title: Builds
          external_url: https://gerrit-ci.gerritforge.com/
        - title: Reviews
          external_url: https://gerrit-review.googlesource.com/q/status:open+project:gerrit
    - title: Docs
      folderitems:
        - title: Latest
          external_url: https://gerrit-documentation.storage.googleapis.com/Documentation/3.2.5.1/index.html
        - title: Designs
          url: /design-docs-index.html
        - title: Wiki
          external_url: https://gerrit.googlesource.com/homepage/+/master/pages/site/docs/
