diff --git a/pom.xml b/pom.xml
index ead294a..99af275 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,6 +54,7 @@
             12343846,12344079,12344332,12344876,12345571,12346551,12346590,12346596,12348677</site.jira.version.id>
         <maven.version>3.3.9</maven.version>
         <maven.site.path>${project.artifactId}-archives/${project.artifactId}-LATEST</maven.site.path>
+        <sightly.runtime.version>1.2.6-1.4.0</sightly.runtime.version>
         <argLine />
         <!-- the github id used for the ribbon for Maven sites: https://maven.apache.org/skins/maven-fluido-skin/#GitHub_ribbons -->
         <github.project.id>apache/sling-htl-maven-plugin</github.project.id>
@@ -100,7 +101,7 @@
         <dependency>
             <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.scripting.sightly.runtime</artifactId>
-            <version>1.2.6-1.4.0</version>
+            <version>${sightly.runtime.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
diff --git a/src/site/markdown/index.md b/src/site/markdown/index.md
index 9317ce6..6e43582 100644
--- a/src/site/markdown/index.md
+++ b/src/site/markdown/index.md
@@ -1,19 +1,21 @@
-## Apache Sling HTL Maven Plugin
+# Overview
 
-The Apache Sling HTL Maven Plugin, M2Eclipse compatible, provides support for validating HTML Template Language scripts from projects during
+The Apache Sling HTL Maven Plugin provides support for validating HTML Template Language scripts from projects during
 build time, reporting issues like:
 
 * syntax errors;
 * expression warnings (e.g. missing required display contexts, sensible attributes with dynamic values, etc.);
-* incorrect usage of block elements.
+* incorrect usage of block elements.
+
+It is compatible with [m2eclipse](https://www.eclipse.org/m2e/documentation/m2e-making-maven-plugins-compat.html) and supports executing its goals during Eclipse incremental builds.
 
-### Goals
+## Goals
 The HTL Maven Plugin has only one goal:
 
-* [htl:validate](validate-mojo.html) is bound to the compile phase and is used to validate HTL scripts.
+* [htl:validate](validate-mojo.html) is bound to the generate-sources phase and is used to validate/transpile HTL scripts.
 
 
-### Usage
+## Usage
 General instructions on how to use the HTL Maven Plugin can be found on the [usage](usage.html) page.
 
 In case you still have questions regarding the plugin's usage feel free to contact the Apache Sling Development List. The posts to the
diff --git a/src/site/markdown/usage.md.vm b/src/site/markdown/usage.md.vm
index cf839a6..7cb6c0e 100644
--- a/src/site/markdown/usage.md.vm
+++ b/src/site/markdown/usage.md.vm
@@ -64,7 +64,7 @@
 $h3 Generating Java classes from your HTL scripts
 
 Since version 1.1.0 it's possible to generate Java classes from the project's HTL scripts. This is useful when you want to identify your
-script's Java dependencies. To do this the following configuration should be applied:
+script's Java dependencies or precompile scripts. To do this the following configuration should be applied:
 
 ```
 <project>
@@ -83,7 +83,7 @@
                     </configuration>
                     <executions>
                         <execution>
-                            <id>validate-scripts</id>
+                            <id>transpile-scripts</id>
                             <goals>
                                 <goal>validate</goal>
                             </goals>
@@ -91,34 +91,14 @@
                         </execution>
                     </executions>
                 </plugin>
-            </plugins>    
+            </plugins>
         </pluginManagement>
     </build>
     ...
 </project>
 ```
 
-Additionally, the following dependencies are required as part of your project's dependencies list:
-
-```
-<!-- HTL dependencies needed for the HTL Maven Plugin source code generation -->
-<dependency>
-    <groupId>org.apache.sling</groupId>
-    <artifactId>org.apache.sling.scripting.sightly.compiler</artifactId>
-    <!-- version 1.0.14 or higher -->
-    <version>1.0.14</version>
-    <scope>provided</scope>
-</dependency>
-<dependency>
-    <groupId>org.apache.sling</groupId>
-    <artifactId>org.apache.sling.scripting.sightly.compiler.java</artifactId>
-    <!-- version 1.0.16 or higher -->
-    <version>1.0.16</version>
-    <scope>provided</scope>
-</dependency>
-```
-
-Starting with version 1.2.2 of the `htl-maven-plugin`, only the following dependency is needed as part of your project's dependency list:
+Additionally, the following dependency is needed as part of your project's dependency list:
 
 ```
 <!-- HTL dependencies needed for the HTL Maven Plugin source code generation -->
