From 56c549e384b1a648c77bbd09a2cc77976e8a64de Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Tue, 24 May 2011 17:39:55 -0400 Subject: [PATCH] Documentation. --- src/com/gitblit/BuildSite.java | 38 ++++++++++++++++++++++++++++++-------- 1 files changed, 30 insertions(+), 8 deletions(-) diff --git a/src/com/gitblit/BuildSite.java b/src/com/gitblit/BuildSite.java index e122bc2..dc42cf5 100644 --- a/src/com/gitblit/BuildSite.java +++ b/src/com/gitblit/BuildSite.java @@ -10,8 +10,12 @@ import java.nio.charset.Charset; import java.text.MessageFormat; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Arrays; import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import com.beust.jcommander.JCommander; import com.beust.jcommander.Parameter; @@ -41,17 +45,28 @@ }); Arrays.sort(markdownFiles); + Map<String, String> aliasMap = new HashMap<String, String>(); + for (String alias : params.aliases) { + String[] values = alias.split("="); + aliasMap.put(values[0], values[1]); + } + System.out.println(MessageFormat.format("Generating site from {0} Markdown Docs in {1} ", markdownFiles.length, sourceFolder.getAbsolutePath())); String linkPattern = "<a href=''{0}''>{1}</a>"; StringBuilder sb = new StringBuilder(); for (File file : markdownFiles) { - String displayName = getDocumentName(file); - String fileName = displayName + ".html"; + String documentName = getDocumentName(file); + String displayName = documentName; + if (aliasMap.containsKey(documentName)) { + displayName = aliasMap.get(documentName); + } + String fileName = documentName + ".html"; sb.append(MessageFormat.format(linkPattern, fileName, displayName)); sb.append(" | "); } sb.setLength(sb.length() - 3); sb.trimToSize(); + String html_header = readContent(new File(params.pageHeader)); String html_footer = readContent(new File(params.pageFooter)); final String links = sb.toString(); @@ -60,13 +75,14 @@ final String footer = MessageFormat.format(html_footer, "generated " + date); for (File file : markdownFiles) { try { - String displayName = getDocumentName(file); - String fileName = displayName + ".html"; + String documentName = getDocumentName(file); + String fileName = documentName + ".html"; System.out.println(MessageFormat.format(" {0} => {1}", file.getName(), fileName)); InputStreamReader reader = new InputStreamReader(new FileInputStream(file), Charset.forName("UTF-8")); String content = MarkdownUtils.transformMarkdown(reader); - if (displayName.equalsIgnoreCase("overview")) { - content = MessageFormat.format(content, Constants.VERSION, "gitblit-" + Constants.VERSION + ".zip", Constants.getJGitVersion(), date); + for (String token : params.substitutions) { + String [] kv = token.split("="); + content = content.replace(kv[0], kv[1]); } OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(new File(destinationFolder, fileName)), Charset.forName("UTF-8")); writer.write(header); @@ -103,7 +119,7 @@ // trim leading ##_ which is to control display order return displayName.substring(3); } - + private static void usage(JCommander jc, ParameterException t) { System.out.println(Constants.getRunningVersion()); System.out.println(); @@ -116,7 +132,7 @@ } System.exit(0); } - + @Parameters(separators = " ") private static class Params { @@ -132,5 +148,11 @@ @Parameter(names = { "--pageFooter" }, description = "Page Footer HTML Snippet", required = true) public String pageFooter; + @Parameter(names = { "--alias" }, description = "Filename=Linkname aliases", required = false) + public List<String> aliases = new ArrayList<String>(); + + @Parameter(names = { "--substitute" }, description = "@TOKEN@=value", required = false) + public List<String> substitutions = new ArrayList<String>(); + } } -- Gitblit v1.9.1