diff options
Diffstat (limited to 'g2h/commit_page.py')
| -rw-r--r-- | g2h/commit_page.py | 28 |
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) + } |