# 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.

## 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.
#    - title: Sample
#      url: /mydoc/sample.html
#      audience: writers, designers
#      platform: all
#      product: all
#      version: all
#      output: web


githubrepos_dropdowns:
- title: GitHub Repos dropdowns
  subcategories:
    - title: GitHub Repos
      audience: writers, designers
      platform: all
      product: all
      version: all
      output: web
      items:
        - title: Source code
          external_url: https://github.com/apache/incubator-edgent
          audience: writers, designers
          platform: all
          product: all
          version: all
          output: web

        - title: Website/Documentation
          external_url: https://github.com/apache/incubator-edgent-website
          audience: writers, designers
          platform: all
          product: all
          version: all
          output: web

javadoc_dropdowns:
- title: Javadoc dropdowns
  subcategories:
    - title: Javadoc
      audience: writers, designers
      platform: all
      product: all
      version: all
      output: web
      items:
        - title: latest
          url: /..\/javadoc\/latest
          audience: writers, designers
          platform: all
          product: all
          version: all
          output: web

        - title: 1.2.0
          url: /..\/javadoc\/r1.2.0
          audience: writers, designers
          platform: all
          product: all
          version: all
          output: web

        - title: 1.1.0
          url: /..\/javadoc\/r1.1.0
          audience: writers, designers
          platform: all
          product: all
          version: all
          output: web

        - title: 1.0.0
          url: /..\/javadoc\/r1.0.0
          audience: writers, designers
          platform: all
          product: all
          version: all
          output: web

        - title: 0.4.0
          url: /..\/javadoc\/r0.4.0
          audience: writers, designers
          platform: all
          product: all
          version: all
          output: web

#Topnav dropdowns
topnav_dropdowns:
- title: Topnav dropdowns
  subcategories:
    - title: Edgent Resources
      audience: writers, designers
      platform: all
      product: all
      version: all
      output: web
      items:
        - title: Download
          url: downloads
          audience: writers, designers
          platform: all
          product: all
          version: all
          output: web

        - title: FAQ
          url: faq
          audience: writers, designers
          platform: all
          product: all
          version: all
          output: web

        - title: edgent.apache.org
          url: /
          audience: writers, designers
          platform: all
          product: all
          version: all
          output: web
