<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright 2006 The Apache Software Foundation.
  ~
  ~ Licensed 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.
-->
<archetype>
    <name>maven-archetypeng-site</name>
    <partial>true</partial>
    <site-group>
        <templates>
            <template>site.xml</template>
            <template>site_fr.xml</template>
            <template>apt/index.apt</template>
            <template>apt/format.apt</template>
            <template>fml/faq.fml</template>
            <template>xdoc/xdoc.xml</template>
            <template>fr/apt/index.apt</template>
            <template>fr/apt/format.apt</template>
            <template>fr/fml/faq.fml</template>
            <template>fr/xdoc/xdoc.xml</template>
        </templates>
    </site-group>
</archetype>
