Add macro for the revision from which the documentation is shown
'@REVISION@' can now be used as a placeholder for the revision ID.
Change-Id: Iae6085ca158b3e09396167b2b72034f92c7d64ed
Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
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.