summaryrefslogtreecommitdiffstats
path: root/g2h/commit_page.py
diff options
context:
space:
mode:
Diffstat (limited to 'g2h/commit_page.py')
-rw-r--r--g2h/commit_page.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/g2h/commit_page.py b/g2h/commit_page.py
new file mode 100644
index 0000000..7123c82
--- /dev/null
+++ b/g2h/commit_page.py
@@ -0,0 +1,28 @@
+import os
+
+from .page import Page
+
+def redact_email(email):
+ if email is None or len(email) == 0:
+ return ''
+
+ if '@' not in email:
+ return email[0] + '...' + email[-1]
+
+ local, domain = email.split('@')
+ redacted_local = local[0] + '...' + local[-1] if len(local) > 0 else ''
+ redacted_domain = domain.replace('.', '...')
+
+ return redacted_local + '@' + redacted_domain
+
+class CommitPage(Page):
+ def __init__(self, out_dir, name, commit, content_subdir):
+ super(CommitPage, self).__init__('commit.md', out_dir, os.path.join(commit.hexsha, 'index.md'), name, content_subdir)
+ self.commit = commit
+
+ def context(self):
+ return {
+ 'commit': self.commit,
+ 'title': self.name + ': ' + self.commit.hexsha,
+ 'redacted_email': redact_email(self.commit.author.email)
+ }