<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
  ~ 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.
  -->

<project name="Archiva Components">



    <bannerLeft>
        <name>Apache Archiva</name>
        <src>http://archiva.apache.org/images/archiva.png</src>
        <!-- have to add the index.html to get the right location, due to bug in Doxia. Still not correct for subdirectories though -->
        <href>http://archiva.apache.org/index.html</href>
    </bannerLeft>
    <bannerRight>
        <name>Apache Software Foundation</name>
        <src>http://www.apache.org/images/asf_logo_wide_2016.png</src>
        <href>http://www.apache.org/</href>
    </bannerRight>

    <custom>
        <fluidoSkin>
            <topBarEnabled>true</topBarEnabled>
            <sideBarEnabled>false</sideBarEnabled>
            <skipGenerationDate>true</skipGenerationDate>
            <googleSearch>
                <sitesearch>http://archiva.apache.org/components</sitesearch>
            </googleSearch>
            <gitHub>
              <projectId>apache/archiva-components</projectId>
              <ribbonOrientation>right</ribbonOrientation>
              <ribbonColor>black</ribbonColor>
            </gitHub>
         </fluidoSkin>
    </custom>

    <publishDate format="yyyy-MM-dd" position="none"/>

    <body>
        <head>
            <!-- The font-awesome is used by asciidoc -->
            <![CDATA[    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">]]>
            <!-- this points to the parent site.css --> 
            <![CDATA[    <link rel="stylesheet" href="../css/site.css">]]>
        </head>

        <links>
            <item name="Archiva" href="../index.html"/>
        </links>

        <menu ref="modules"/>
        <menu ref="reports"/>
        <menu ref="ASF"/>
        <breadcrumbs>
            <item name="Archiva" href="../index.html"/>
        </breadcrumbs>
    </body>

    <skin>
        <groupId>org.apache.maven.skins</groupId>
        <artifactId>maven-fluido-skin</artifactId>
        <version>1.7</version>
    </skin>
</project>
