<?xml version="1.0" encoding="UTF-8"?>
<!--
  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.
-->

<forrest:contract name="content-include-html" type="nugget"
  xmlns:forrest="http://apache.org/forrest/templates/1.0">
  
  <description>
    content-include-html retrieves the content from a Forrest generated HTML document and
    includes the current document.
  </description>
	
  <usage>
<![CDATA[<forrest:contract name="content-include-html">
    <forrest:properties contract="content-include-html">
      <forrest:property name="content-include-html" nugget="get.nugget.include.html">
        <url>/path/to/a/document.html</url>
      </forrest:property>
    </forrest:properties>
</forrest:contract>]]>
   </usage>
  
  <forrest:template
    xmlns:forrest="http://apache.org/forrest/templates/1.0"
    format="xhtml" 
    name="content-include-html" 
    inputFormat="xsl" 
    body="true" 
    head="false">
    
    <xsl:stylesheet version="1.1" 
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        
	    <xsl:template name="content-include-html-body" > 
	      <xsl:param name="content-include-html"/>
        <xsl:copy-of select="$content-include-html//div[@id='content']/*"/>
			</xsl:template>
    
    </xsl:stylesheet>
    
	</forrest:template>
</forrest:contract>
