<project xmlns="http://maven.apache.org/POM/4.0.0"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.eclipse.photon</groupId>
   <artifactId>org.eclipse.noteworthy</artifactId>
   <version>0.0.1-SNAPSHOT</version>

   <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <asciidoctor.maven.plugin.version>1.5.3</asciidoctor.maven.plugin.version>
      <asciidoctorj.version>1.5.4.1</asciidoctorj.version>
      <asciidoctorj.diagram.version>1.5.0</asciidoctorj.diagram.version>
      <asciidoctorj.pdf.version>1.5.0-alpha.14</asciidoctorj.pdf.version>
      <jruby.version>9.1.7.0</jruby.version>
   </properties>
   <build>
      <defaultGoal>process-resources</defaultGoal>
      <plugins>
         <plugin>
            <groupId>org.asciidoctor</groupId>
            <artifactId>asciidoctor-maven-plugin</artifactId>
            <version>${asciidoctor.maven.plugin.version}</version>
            <dependencies>
               <!-- Comment this section to use the default jruby artifact 
                  provided by the plugin -->
               <dependency>
                  <groupId>org.jruby</groupId>
                  <artifactId>jruby-complete</artifactId>
                  <version>${jruby.version}</version>
               </dependency>
               <!-- Comment this section to use the default AsciidoctorJ 
                  artifact provided by the plugin -->
               <dependency>
                  <groupId>org.asciidoctor</groupId>
                  <artifactId>asciidoctorj</artifactId>
                  <version>${asciidoctorj.version}</version>
               </dependency>
               <dependency>
                  <groupId>org.asciidoctor</groupId>
                  <artifactId>asciidoctorj-diagram</artifactId>
                  <version>${asciidoctorj.diagram.version}</version>
               </dependency>

               <dependency>
                  <groupId>org.asciidoctor</groupId>
                  <artifactId>asciidoctorj-pdf</artifactId>
                  <version>${asciidoctorj.pdf.version}</version>
               </dependency>
            </dependencies>
            <configuration>
               <sourceDirectory>source</sourceDirectory>
               <outputDirectory>.</outputDirectory>
               <requires>
                  <require>asciidoctor-diagram</require>
               </requires>

               <directory>source</directory>
               <resources>
                  <resource>
                     <directory>.</directory>
                     <excludes>
                        <exclude>**/*</exclude>
                     </excludes>
                  </resource>
               </resources>

               <attributes>
                  <endpoint-url>http://www.eclipse.org</endpoint-url>
                  <sourcedir>${project.build.sourceDirectory}</sourcedir>
                  <project-version>${project.version}</project-version>
                  <endpoint-url>http://www.eclipse.org/photon/noteworthy</endpoint-url>
                  <nofooter />
               </attributes>
            </configuration>
            <executions>
               <execution>
                  <id>asciidoc-to-html</id>
                  <phase>generate-resources</phase>
                  <goals>
                     <goal>process-asciidoc</goal>
                  </goals>
                  <configuration>
                     <backend>html5</backend>
                     <sourceHighlighter>coderay</sourceHighlighter>
                     <sourceDocumentName>noteworthy.adoc</sourceDocumentName>
                     <attributes>
                        <doctype>book</doctype>
                        <imagesoutdir>.</imagesoutdir>
                        <imagesdir>.</imagesdir>
                        <toc>left</toc>
                        <icons />
                        <sectanchors>true</sectanchors>
                        <!-- set the idprefix to blank -->
                        <idprefix />
                        <idseparator>-</idseparator>
                        <stylesheet>../noteworthy.css</stylesheet>
                     </attributes>
                  </configuration>
               </execution>
            </executions>
         </plugin>
      </plugins>
      <pluginManagement>
         <plugins>
            <!--This plugin's configuration is used to store Eclipse m2e 
               settings only. It has no influence on the Maven build itself. -->
            <plugin>
               <groupId>org.eclipse.m2e</groupId>
               <artifactId>lifecycle-mapping</artifactId>
               <version>1.0.0</version>
               <configuration>
                  <lifecycleMappingMetadata>
                     <pluginExecutions>
                        <pluginExecution>
                           <pluginExecutionFilter>
                              <groupId>
                                 org.asciidoctor
                              </groupId>
                              <artifactId>
                                 asciidoctor-maven-plugin
                              </artifactId>
                              <versionRange>
                                 [1.5.3,)
                              </versionRange>
                              <goals>
                                 <goal>
                                    process-asciidoc
                                 </goal>
                              </goals>
                           </pluginExecutionFilter>
                           <action>
                              <ignore></ignore>
                           </action>
                        </pluginExecution>
                     </pluginExecutions>
                  </lifecycleMappingMetadata>
               </configuration>
            </plugin>
         </plugins>
      </pluginManagement>
   </build>
   <name>Eclipse Photon New and Noteworthy</name>
   <organization>
      <name>Eclipse Foundation</name>
   </organization>
</project>
