<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>
                        <data-uri />
                        <toc>left</toc>
                        <icons />
                        <sectanchors>true</sectanchors>
                        <!-- set the idprefix to blank -->
                        <idprefix />
                        <idseparator>-</idseparator>
                        <docinfo1>true</docinfo1>
                        <embedAssets>true</embedAssets>
                        <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>
