diff --git a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocLoader.java b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocLoader.java
index 758a7c2..13949e1 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocLoader.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/xdocs/XDocLoader.java
@@ -36,6 +36,7 @@
 import com.googlesource.gerrit.plugins.xdocs.formatter.Formatters.FormatterProvider;
 
 import org.eclipse.jgit.diff.RawText;
+import org.eclipse.jgit.lib.AbbreviatedObjectId;
 import org.eclipse.jgit.lib.ObjectId;
 import org.eclipse.jgit.lib.ObjectLoader;
 import org.eclipse.jgit.lib.ObjectReader;
@@ -106,10 +107,11 @@
           }
           ObjectReader reader = repo.newObjectReader();
           try {
+            String abbrRevId = reader.abbreviate(key.getRevId()).name();
             String html =
                 formatter.get().format(key.getProject().get(),
-                    reader.abbreviate(key.getRevId()).name(), formatterCfg,
-                    replaceMacros(key.getProject(), bytes));
+                    abbrRevId, formatterCfg,
+                    replaceMacros(key.getProject(), abbrRevId, bytes));
             return getAsHtmlResource(html, commit.getCommitTime());
           } finally {
             reader.release();
@@ -125,7 +127,8 @@
     }
   }
 
-  private String replaceMacros(Project.NameKey project, byte[] raw) {
+  private String replaceMacros(Project.NameKey project, String abbrRevId,
+      byte[] raw) {
     Map<String, String> macros = Maps.newHashMap();
 
     String url = webUrl.get();
@@ -136,6 +139,7 @@
 
     macros.put("PROJECT", project.get());
     macros.put("PROJECT_URL", url + "#/admin/projects/" + project.get());
+    macros.put("REVISION", abbrRevId);
 
     Matcher m = Pattern.compile("(\\\\)?@([A-Z_]+)@")
         .matcher(new String(raw, UTF_8));
diff --git a/src/main/resources/Documentation/user.md b/src/main/resources/Documentation/user.md
index 760b4da..fc31782 100644
--- a/src/main/resources/Documentation/user.md
+++ b/src/main/resources/Documentation/user.md
@@ -77,3 +77,4 @@
 * `\@URL@`: The web URL of the Gerrit server.
 * `\@PROJECT@`: The name of the project from which the documentation is shown.
 * `\@PROJECT_URL@`: The web URL of the project from which the documentation is shown.
+* `\@REVISION@`: The abbreviated ID of the revision from which the documentation is shown.
